Hide and Seek on Github 2

(No. 0)  No. 1  No. 2 

One detail in the part of the story in No. 1 of this section.

The video and the PCAP are same as in No. 1 of this section.

Watch the video from 0:04:28. Or open it in new window and it will play just the small footage that I'll discuss here.

---

By uncenz:

dump_180809_1931_gdO_2150-6960.pcap

---

This time, apart from running my tools I ran this little part-PCAP in Wireshark quite a lot to do my analysis. But to pinpoint at the error(s) that happened, some of the produce of my scripts will serve well.

tshark-hosts-conv produces among other files

================================================================================
IPv4 Conversations
Filter:
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
151.101.16.133       <-> 192.168.1.2              640    125177     738    131707    1378    256884     0.000000000       335.3343
192.30.253.112       <-> 192.168.1.2              700     97165     981   1274971    1681   1372136     3.384088000       220.9344
192.30.253.125       <-> 192.168.1.2              199     20758     214     34905     413     55663     4.481287000       330.4568
192.30.253.124       <-> 192.168.1.2              189     24336     187     29115     376     53451     4.499537000       330.4405
185.121.177.177      <-> 192.168.1.2               37      3111      37      5126      74      8237     6.295110000       320.2678
192.168.1.1          <-> 224.0.0.1                  0         0       2       124       2       124   112.581231000       125.0039
192.30.253.113       <-> 192.168.1.2              280     39709     568    791260     848    830969   268.778966000        66.8086
================================================================================

which IPs, looked up in the dump_180809_1931_gdO_2150-6960.hosts will tell you what I mentioned in No. 1 of this section: it's just M$ (in the robe of Github), no one else. Good securitywise, but not privacywise, as they work with the surveillor states pretty much anywhere, no privacy really with M$. If you run tshark-hosts-conv, in the educational dump_180809_1931_gdO_2150-6960_tHostsConv.log that it will make for you upon completion, you will find this section, in regard to the above:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
151.101.16.133	github.map.fastly.net
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
151.101.16.133       <-> 192.168.1.2              640    125177     738    131707    1378    256884     0.000000000       335.3343
---

192.30.253.112	github.com
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
192.30.253.112       <-> 192.168.1.2              700     97165     981   1274971    1681   1372136     3.384088000       220.9344
---

192.30.253.125	live.github.com
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
192.30.253.125       <-> 192.168.1.2              199     20758     214     34905     413     55663     4.481287000       330.4568
---

192.30.253.124	live.github.com
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
192.30.253.124       <-> 192.168.1.2              189     24336     187     29115     376     53451     4.499537000       330.4405
---

( abbreviated here for 185.121.177.177, the OpenNIC DNS hub, and 224.0.0.1, the IGMP IP in the local Chinese commie router ZTE ZXDSL to fiberland )

---

192.30.253.113	github.com
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
192.30.253.113       <-> 192.168.1.2              280     39709     568    791260     848    830969   268.778966000        66.8086
---

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

The relative start of what happens in the window (if you have opened it as I suggested near the top), in those some 4 seconds, is right when this last Github-M$ IP joins in (the 192.30.253.113, Relative Start 268.778966000)!

And here is the summary, taken from Wireshark: File -> Export Packet Dissections -> As Plain Text.

And then: Selected Packets Only, Range 3343-3492, and just the Summary Line.

And you should get:dump_180809_1931_gdO_2150-6960_dissect3343-3492.txt, which tells:

No.     Time           Source                Destination           Protocol Length Info
   3343 268.886556     192.168.1.2           192.30.253.113        TLSv1.2  294    Client Hello
   3344 268.995030     192.30.253.113        192.168.1.2           TLSv1.2  1492   Server Hello
   3345 268.995259     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=227 Ack=1425 Win=32128 Len=0 TSval=105509523 TSecr=2775686674
   3346 268.995311     192.30.253.113        192.168.1.2           TCP      1492   443 → 35084 [ACK] Seq=1425 Ack=227 Win=29696 Len=1424 TSval=2775686674 TSecr=105509414 [TCP segment of a reassembled PDU]
   3347 268.995364     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=227 Ack=2849 Win=35072 Len=0 TSval=105509523 TSecr=2775686674
   3348 268.995396     192.30.253.113        192.168.1.2           TLSv1.2  770    Certificate, Server Key Exchange, Server Hello Done
   3349 268.995437     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=227 Ack=3551 Win=37888 Len=0 TSval=105509523 TSecr=2775686674
   3350 269.003569     192.168.1.2           192.30.253.113        TLSv1.2  194    Client Key Exchange, Change Cipher Spec, Finished
   3351 269.110748     192.30.253.113        192.168.1.2           TLSv1.2  119    Change Cipher Spec, Finished
   3352 269.122895     192.168.1.2           192.30.253.113        TCP      1492   35084 → 443 [ACK] Seq=353 Ack=3602 Win=37888 Len=1424 TSval=105509651 TSecr=2775686703 [TCP segment of a reassembled PDU]

[1] This is where the preview request is POST'ed:

   3353 269.122917     192.168.1.2           192.30.253.113        HTTP     1113   POST /preview?markdown_unsupported=false&repository=89864152&subject=30&subject_type=PullRequest HTTP/1.1 
   3354 269.230608     192.30.253.113        192.168.1.2           TCP      68     443 → 35084 [ACK] Seq=3602 Ack=2822 Win=35840 Len=0 TSval=2775686733 TSecr=105509651
   3355 269.285954     192.30.253.113        192.168.1.2           TLSv1.2  1467   [SSL segment of a reassembled PDU]
   3356 269.286059     192.30.253.113        192.168.1.2           TLSv1.2  1467   [SSL segment of a reassembled PDU]
   3357 269.286122     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=2822 Ack=6400 Win=43648 Len=0 TSval=105509814 TSecr=2775686747

[2] This is where is's reassembled and shown in the browser:

   3358 269.286158     192.30.253.113        192.168.1.2           HTTP     489    HTTP/1.1 200 OK  (text/html)
   3359 269.326787     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=2822 Ack=6821 Win=46464 Len=0 TSval=105509855 TSecr=2775686747
   3360 271.827606     151.101.16.133        192.168.1.2           TCP      99     [TCP Retransmission] 443 → 41410 [FIN, PSH, ACK] Seq=3102 Ack=3891 Win=15008 Len=31 TSval=1829280192 TSecr=105496592

[3] The right-click-on-the-link generated GET request, but pls. notice the incomplete local address! that's not what's in that preview page, part is missing:

   3361 272.067988     192.168.1.2           192.30.253.113        HTTP     1468   GET /minipli/linux-unofficial_grsec/issue_comments HTTP/1.1 
   3362 272.215695     192.30.253.113        192.168.1.2           TCP      68     443 → 35084 [ACK] Seq=6821 Ack=4222 Win=38912 Len=0 TSval=2775687480 TSecr=105512596
   3363 272.216546     192.30.253.113        192.168.1.2           TLSv1.2  1467   [SSL segment of a reassembled PDU]
   3364 272.216601     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=4222 Ack=8220 Win=49408 Len=0 TSval=105512744 TSecr=2775687480

[ 16 lines cut (8 times 2), all like the two above ]

   3381 272.217682     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3382 272.217717     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=4222 Ack=20936 Win=75392 Len=0 TSval=105512746 TSecr=2775687480
   3383 272.320837     151.101.16.133        192.168.1.2           TCP      99     [TCP Retransmission] 443 → 41418 [FIN, PSH, ACK] Seq=7994 Ack=2494 Win=33280 Len=31 TSval=144078401 TSecr=105496592
   3384 272.323198     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3385 272.323282     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=4222 Ack=22360 Win=78336 Len=0 TSval=105512851 TSecr=2775687506

[ 94 lines cut (47 times 2), all like the two above ]

   3480 272.434398     192.30.253.113        192.168.1.2           TLSv1.2  606    [SSL segment of a reassembled PDU]
   3481 272.434477     192.30.253.113        192.168.1.2           TLSv1.2  1467   [SSL segment of a reassembled PDU]
   3482 272.434600     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU]
   3483 272.434767     192.30.253.113        192.168.1.2           TLSv1.2  1442   [SSL segment of a reassembled PDU]
   3484 272.434838     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU]
   3485 272.434958     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3486 272.435087     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3487 272.435209     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3488 272.435329     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3489 272.435452     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]
   3490 272.435573     192.30.253.113        192.168.1.2           TLSv1.2  1492   [SSL segment of a reassembled PDU] [TCP segment of a reassembled PDU]

[4] And surely the link is not found:

   3491 272.435606     192.30.253.113        192.168.1.2           HTTP     320    HTTP/1.1 404 Not Found  (text/html)
   3492 272.444229     192.168.1.2           192.30.253.113        TCP      68     35084 → 443 [ACK] Seq=4222 Ack=104243 Win=141952 Len=0 TSval=105512972 TSecr=2775687533

---

WARNING: Familiarity with and use of some Unix-like OS such as GNU/Linux or BSD, (or being able to use Cygwin on Windows but I haven't tested that yet) is required to be able to follow.

Most of the original files of this section are produced with my (primitive) set of scripts:

uncenz.

Notice there are different scripts there, some I use for minimal anonymization of the dumps (dump_perl_repl.sh). Ah, and another could be useful for downloading, instead of of click-downloading each file in a list (dump_dLo.sh). If not downloading uncenz, you can get it directly: https://raw.githubusercontent.com/miroR/uncenz/master/dump_dLo.sh or later version if that looks too old.

It's also available here locally.

For analysis/stream extraction I often use my modest and lacking in good programming practices, but doing what I created them for, scripts:

tshark-hosts-conv

and:

tshark-streams.

as well as:

workPCAPs which can run tshark-streams and tshark-hosts-conv
( and from May 2018 also stream-cont.pl from program

stream-cont )

on (a lot) of PCAP(s) (usually) non-interactively.
NOTE: A better way than my stream-cont, since recently to my writing of it, is in tshark. Pls. see how to extract files taught by a Wireshark core dev.

Readers are advised to try and analyze the traffic dumps for themselves, with the above programs (I also try to offer some educational usefulness to them). There would anyway be too little point posting all the streams and the listings that those would produce. I usually post just the ones among that produce which are crucial for the discussion in question.

And just another one thing: I post lots of command lines and snippets of scripts. Be aware that some of those are in HTML, so before using them, check that they correspond to what the page shows, and of course, report (see the contact page) back to me the typoes and errors if you find any.

The files necessary for this study are listed in:

ls-1

dump_180809_1931_gdO_2150-6960.conv-ip
dump_180809_1931_gdO_2150-6960.hosts
dump_180809_1931_gdO_2150-6960_tHostsConv.log
dump_180809_1931_gdO_2150-6960_dissect3343-3492.txt

and verify to: ls-1.sum signed by: ls-1.sum.asc