Intervjuavsnitt #9 - Dominic White
Lyssna
Innehåll
Intervju från Hack In The Box Amsterdam 2014 med Dominic White (@singe) CTO på SensePost. Vi pratar om Dominics nya verktyg “Big Iron Recon and Pwnage” eller BIRP som kan användas för att granska stordatorapplikationer som använder TN3270 och vad man kan hitta på med det.
Inspelat: 29 maj 2014. Längd: 11:14.
Länkar
Presentation från Amsterdam - http://haxpo.nl/hitb2014ams-dominic-white/ BIRP - https://github.com/sensepost/birp Dominics GitHub - https://github.com/singe Hercules - http://www.hercules-390.eu/ DeZhi cloud mainframe - http://www.efglobe.com/ SensePost Blog - http://www.sensepost.com/blog/ Hack In The Box - http://www.hitb.org/ TN3270 - http://en.wikipedia.org/wiki/IBM_3270
AI transkribering
AI försöker förstå oss… Ha överseende med galna feltranskriberingar.
1 00:00:00,000 --> 00:00:03,500
Hej och välkommen till Säkerhetspodcasten.
2 00:00:04,240 --> 00:00:20,420
Idag så träffar jag Dominic White från Sensepost som har pratat här på Hack in the Box EU 2014 i Amsterdam och har tillfälle att ställa lite frågor till Dominic.
3 00:00:20,600 --> 00:00:21,160
Hej Dominic.
4 00:00:21,920 --> 00:00:22,180
Hej.
5 00:00:22,180 --> 00:00:26,540
Det var en väldigt intressant tal som du just fördelade.
6 00:00:26,980 --> 00:00:27,180
Tack.
7 00:00:27,180 --> 00:00:35,880
Det var om svårigheter i TN3270-protokollet.
8 00:00:36,520 --> 00:00:42,420
Kan du berätta lite om vad TN32 är och vad det är som det används för?
9 00:00:42,420 --> 00:00:51,640
Okej, så TN3270 är det 3270-emulation-protokollet som används för att knyta framhållet till periferier, som gröna skärmar,
10 00:00:52,140 --> 00:00:54,540
och går över Telnet och speciellt TCP-IP.
11 00:00:54,940 --> 00:00:57,160
Så TN är Telnet och 3270 är 3270.
12 00:00:57,180 --> 00:01:08,440
Så det är en protokoll för att knyta framhållet till periferierna över nätet och vanligtvis används det för att interagera med periferieapplikationer.
13 00:01:08,440 --> 00:01:15,260
Det finns många olika applikationer och de går runt i olika teknologistackar, men de är alla utsläppade genom samma protokoll.
14 00:01:16,480 --> 00:01:21,360
Så de svårigheter som jag har hittat ger dig möjlighet att messa med de här applikationerna genom att messa med protokollet.
15 00:01:21,720 --> 00:01:22,080
Välkomstigt.
16 00:01:22,720 --> 00:01:26,840
Så vilka implikationer har det?
17 00:01:27,180 --> 00:01:34,240
Hur kan du använda det här?
18 00:01:35,120 --> 00:01:43,100
Så implikationen är att jag tror att jag har hittat en klass eller familj av vulnerabiliteter i mainframe-applikationer.
19 00:01:43,720 --> 00:01:49,500
Så lite liknande till hur vi hade webbapplikationer och interception-proxys som kom runt.
20 00:01:49,680 --> 00:01:52,420
Det hittade en hel klass av vulnerabiliteter i webbapplikationer.
21 00:01:53,140 --> 00:01:56,480
Jag tror att det är samma sak i mainframe-världen.
22 00:01:56,480 --> 00:01:59,420
Men problemet är att jag inte har ett massivt antal datapunkter att kolla på.
23 00:01:59,620 --> 00:02:04,160
Men jag har åtminstone sex, en av dem som innehåller en officiell IBM-applikation som de har patchat.
24 00:02:05,140 --> 00:02:10,260
Du kan använda det i vilka mainframe-applikationer som du kan interagera med via TM3270.
25 00:02:10,880 --> 00:02:18,880
Och du kan även använda det i lite oskura platser som webb till TM3270-translationsgatet.
26 00:02:19,620 --> 00:02:21,740
Det finns några sätt att följa alla saker där.
27 00:02:22,440 --> 00:02:22,960
Cool.
28 00:02:23,760 --> 00:02:24,960
Som du nämnde.
29 00:02:26,480 --> 00:02:34,160
När du tittar på webbapplikationer och du har en klient-sidan av säkerheten som Javascript
30 00:02:34,160 --> 00:02:38,420
som försöker implementera säkerheten på inputen.
31 00:02:39,380 --> 00:02:44,700
Kan du förklara lite mer om vad du hittade när du började titta på protokollet?
32 00:02:45,120 --> 00:02:46,800
Ja, så du hittade på näl i huvudet.
33 00:02:47,520 --> 00:02:51,580
TM3270-protokollet består av skärmar som är skapade av fjärder.
34 00:02:51,580 --> 00:02:54,820
Så hosten eller mainframe kommer att skicka dig en skärm.
35 00:02:55,000 --> 00:02:56,460
Och din emulator kommer att markera det.
36 00:02:56,480 --> 00:03:02,120
Så du kan utbilda det, rendera det, och sen skickar du en skärm, till exempel genom att klicka på Enter.
37 00:03:02,120 --> 00:03:09,280
Det är lite annorlunda från HTTP och HTML i att det är ett protokoll med syntax och data tillsammans.
38 00:03:09,280 --> 00:03:13,120
Medan med HTTP kan du skicka något annorlunda än HTML över.
39 00:03:13,120 --> 00:03:18,500
I det här, när du skickar en skärm, skickar du den med en färg, med alla sina fält och så vidare.
40 00:03:18,500 --> 00:03:26,360
Och kärnvården i det var att dessa fält kommer att markeras som hittade eller inte förmodlade.
41 00:03:26,480 --> 00:03:29,300
Eller input fält och så vidare.
42 00:03:29,300 --> 00:03:34,160
Och om du ber en emulator att oavsett några av de saker som en emulator normalt skulle göra.
43 00:03:34,160 --> 00:03:39,800
Så till exempel, en emulator skulle normalt förhindra dig från att skicka upp ett skyddat fält.
44 00:03:39,800 --> 00:03:46,700
Så om du hackar det, så kan du sedan göra din emulator att skicka upp hittade fält och skicka upp skyddat fält.
45 00:03:46,700 --> 00:03:52,080
Och du kan skicka den skärmen till hosten och det blir så att det utgör en massa förvaltningar.
46 00:03:52,080 --> 00:03:56,180
Så speciellt, de två förändringarna är att skicka upp hittade fält.
47 00:03:56,480 --> 00:04:00,060
Som ibland har sessiondata inkorperad i det.
48 00:04:00,060 --> 00:04:06,460
Ibland har det saker som paginummer som du kan använda, nästan som webb-URL som du kan använda för att komma till andra platser.
49 00:04:06,460 --> 00:04:11,580
Och förändring av skyddat fält ger dig möjlighet att göra saker som applikationsutvecklare trodde var restriktivt.
50 00:04:11,580 --> 00:04:20,540
Vad fick dig att titta på TN32? Det ser ut som en arkeisk protokoll.
51 00:04:20,540 --> 00:04:26,440
Och jag tror att det fortfarande är användbart.
52 00:04:26,440 --> 00:04:33,100
Det är en av de största organisationerna, men vad fick dig att titta på det?
53 00:04:33,100 --> 00:04:38,480
Jag ska ge dig två delar av ansvaret till det. Jag trodde att det här var arkeiskt.
54 00:04:38,480 --> 00:04:44,620
Jag trodde att det här var en legacy, inte hållbar, inte uppdaterad, i processen av att bli avslutad från den vanliga organisationen som hade det.
55 00:04:44,620 --> 00:04:51,400
Det ser ut som att det inte är så. Folk som använder system C har investerat mycket i det.
56 00:04:51,400 --> 00:04:55,880
Generellt är de använda för deras kalla affärsprocesser och de har byggt andra system runt omkring det.
57 00:04:56,440 --> 00:04:59,000
Det går inte någonstans snart, vilket jag inte förstod.
58 00:04:59,000 --> 00:05:03,360
Jag har också inte förstått att det här är en moderna, regelbara, uppdaterad system.
59 00:05:03,360 --> 00:05:08,980
Så även om det var byggt en lång tid sedan, så är det fortfarande regelbara, uppdaterade och hållbara.
60 00:05:08,980 --> 00:05:14,880
Så det som fick mig in i det var att vi egentligen hade en utvärdering där vi behövde titta på mainframe-applikationer.
61 00:05:14,880 --> 00:05:17,440
Vi behövde förstå hur man planerar väldigt snabbt.
62 00:05:17,440 --> 00:05:25,620
Och i det gör vi så att vi samlar ihop ett threat-modell, vilket innehåller att försöka ta hand om sätt att attackera saker på olika intressenter.
63 00:05:26,440 --> 00:05:32,080
En av dem var, kan vi ta hand om protokollet?
64 00:05:32,080 --> 00:05:38,220
Och när jag tittade på protokollet blev det väldigt klart att det fanns en klient-sidan-försörjning, en traditionell säkerhets-era.
65 00:05:38,220 --> 00:05:42,060
Och du vet vad det är med hackare, du ser en förvaltning och du går och hundrar för andra.
66 00:05:42,060 --> 00:05:48,200
Ja, det var väldigt bra. Jag tyckte verkligen att presentationen var bra.
67 00:05:48,200 --> 00:05:56,400
Och jag tror att om du är en webb-testare, så finns det så många likheter mellan
68 00:05:56,440 --> 00:06:02,580
att använda ett verktyg som Burp.
69 00:06:02,580 --> 00:06:10,520
Så jag tror att om en webb-testare hade sett din presentation, så kunde de troligtvis relatera och säga
70 00:06:10,520 --> 00:06:17,680
Hej, jag förstår detta. Det här är bara att messa med parametrar och input.
71 00:06:17,680 --> 00:06:21,780
Ja, absolut. Så den verktygen jag lanserade var Burp?
72 00:06:21,780 --> 00:06:25,620
Ja, exakt. Jag förstod att jag missade den punkten.
73 00:06:25,620 --> 00:06:28,940
Men berätta för oss om verktygen.
74 00:06:28,940 --> 00:06:32,280
Ja, innan jag gör det så tänkte jag att jag skulle vilja respondera till det senaste.
75 00:06:32,280 --> 00:06:36,880
Den punkten är absolut att om du kan testa webb-applikationer, så kan du testa webb-applikationer.
76 00:06:36,880 --> 00:06:40,220
Och vi borde inte skicka över detta.
77 00:06:40,220 --> 00:06:44,300
Så för verktygen, eftersom de har likheter med webb-applikationer,
78 00:06:44,300 --> 00:06:46,360
så gick jag för att ta upp namnet,
79 00:06:46,360 --> 00:06:50,700
vilket säkert inte fungerar så bra när du har en konversation och försöker prata om Burp och Burp.
80 00:06:50,700 --> 00:06:52,760
Men det här är Burp, B-I-R-P.
81 00:06:52,760 --> 00:06:55,580
Och Andreas kom upp med namnet Big Ion Reader.
82 00:06:55,620 --> 00:06:56,900
B-I-C-O-N-N-P-O-N-I-G-E.
83 00:06:56,900 --> 00:06:58,700
Vilket jag tyckte var ganska kul.
84 00:06:58,700 --> 00:07:01,760
Så verktyget heter Burp. Det är en Python-applikation.
85 00:07:01,760 --> 00:07:06,120
Det gör en väldigt liknande sak till vad Burp, webb-applikationproxyn, gör.
86 00:07:06,120 --> 00:07:08,160
Det är att det ger en kompanjonssyn.
87 00:07:08,160 --> 00:07:13,020
Så du har din vanliga emulator, även om jag har några patcher som jag kan hacka för att göra det vi vill.
88 00:07:13,020 --> 00:07:16,620
Och så kommer Burp att ge en hackar-syn på skärmen.
89 00:07:16,620 --> 00:07:21,480
Markerad med mer användande information för att uppfölja saker ur en säkerhetsperspektiv.
90 00:07:21,480 --> 00:07:25,580
Och det gör andra saker, som att skicka in transaktioner, som ger dig möjlighet att analysera dem senare.
91 00:07:25,620 --> 00:07:26,900
Och modifiera dem.
92 00:07:26,900 --> 00:07:28,700
Det gör rapport-skrivandet mycket lättare.
93 00:07:28,700 --> 00:07:32,780
Så lättare. Jag var så tacksam när det kom till rapport-skrivandet att jag skrev det här.
94 00:07:32,780 --> 00:07:35,600
Och även interagera med IBM.
95 00:07:35,600 --> 00:07:38,420
Jag hade inte tillgång till klientsystemet längre.
96 00:07:38,420 --> 00:07:39,700
Du får inte ta med dig mainframes med dig.
97 00:07:39,700 --> 00:07:40,220
Nej.
98 00:07:40,220 --> 00:07:43,280
Och jag kunde berätta exakt vad förvaltningen var.
99 00:07:43,280 --> 00:07:48,660
Jag tror också att det är en av problemen med den här områdena.
100 00:07:48,660 --> 00:07:54,800
Folk kan använda VM och använda Linux eller Windows eller vad som helst.
101 00:07:54,800 --> 00:07:55,580
Men jag menar…
102 00:07:55,580 --> 00:08:02,240
Du kan inte verkligen virtualisera en IBM-mainframe.
103 00:08:02,240 --> 00:08:05,300
Något kul är att du kan virtualisera det.
104 00:08:05,300 --> 00:08:07,620
Det finns en emulator kallad Hercules.
105 00:08:07,620 --> 00:08:10,180
Projektet heter nu Hyperion VM.
106 00:08:10,180 --> 00:08:14,520
Det är en öppenspråkig Xeos-emulator.
107 00:08:14,520 --> 00:08:18,360
Och det du behöver är den aktuella operatörer som finns runt omkring.
108 00:08:18,360 --> 00:08:19,900
Det är problematiskt att få hand om.
109 00:08:19,900 --> 00:08:23,740
För det är distribuerat och licensierat med hardware.
110 00:08:23,740 --> 00:08:25,540
Soldier of Fortran.
111 00:08:25,540 --> 00:08:27,340
Och på hans blogg finns instruktioner.
112 00:08:27,340 --> 00:08:28,620
Det är också min presentation.
113 00:08:28,620 --> 00:08:30,140
Det finns en Pacebin-avsnitt.
114 00:08:30,140 --> 00:08:33,980
Men om du går till Pirate Bay så kan du få en torrent-länk.
115 00:08:33,980 --> 00:08:35,020
För lite av det här.
116 00:08:35,020 --> 00:08:37,320
Som du kan använda i din Hercules-emulator.
117 00:08:37,320 --> 00:08:39,100
Men du piraterar då.
118 00:08:39,100 --> 00:08:47,040
Så vi skulle inte vilja ge vår publik några idéer om att gå ut och göra lokalt saker.
119 00:08:47,040 --> 00:08:52,160
Men kanske om du frågar IBM på en vänlig sätt.
120 00:08:52,160 --> 00:08:54,220
Så jag frågade IBM på en vänlig sätt.
121 00:08:54,220 --> 00:08:54,720
Tyvärr.
122 00:08:55,540 --> 00:08:57,580
De sa nämligen nej.
123 00:08:57,580 --> 00:09:01,420
Du måste vara sammanfattad med en kunder som har en aktiv licens.
124 00:09:01,420 --> 00:09:04,760
Så det finns en application developer-kontrollerad distribution.
125 00:09:04,760 --> 00:09:05,780
ADCD.
126 00:09:05,780 --> 00:09:06,800
Som du sedan kan få.
127 00:09:06,800 --> 00:09:08,860
Men den är ändå distribuerad med hardware.
128 00:09:08,860 --> 00:09:13,980
Så om du jobbar med en kunder som har en licens med IBM så kan du få den.
129 00:09:13,980 --> 00:09:21,140
Om du vill spela och inte piratera så finns det den fria, online,
130 00:09:21,140 --> 00:09:22,940
mainframe i cloud.
131 00:09:22,940 --> 00:09:25,500
DZHR.com.
132 00:09:25,540 --> 00:09:27,340
Jag har lagt en länk för det i min presentation.
133 00:09:27,340 --> 00:09:34,500
ZEOS.egglobe.com.
134 00:09:34,500 --> 00:09:37,580
De har en gratis ZS Instance som du kan få tillgång till.
135 00:09:37,580 --> 00:09:38,860
Problemet är att du inte får admin-tillgång.
136 00:09:38,860 --> 00:09:44,740
Så du får inte spela på ett nivån där du lär dig innanför.
137 00:09:44,740 --> 00:09:45,260
Coolt.
138 00:09:45,260 --> 00:09:50,380
Så vad om vår publik tänker att det här är något riktigt coolt.
139 00:09:50,380 --> 00:09:51,400
Jag vill ta en titt på det här.
140 00:09:51,400 --> 00:09:54,460
Var kan de titta på ditt skript?
141 00:09:54,460 --> 00:09:54,980
Ja.
142 00:09:54,980 --> 00:09:57,280
Och presentationen.
143 00:09:57,280 --> 00:10:01,120
Presentationen kommer att sändas på Hack in the Box-sidan.
144 00:10:01,120 --> 00:10:02,660
Jag vet inte hur länge den kommer.
145 00:10:02,660 --> 00:10:04,960
Jag kommer att sända en bloggintryck på Senseposts blogg.
146 00:10:04,960 --> 00:10:07,780
Med presentationen länkad till verktygen och videon.
147 00:10:07,780 --> 00:10:12,380
Så det kommer att sändas på Sensepost.com.
148 00:10:12,380 --> 00:10:13,920
Nu är verktygen upp.
149 00:10:13,920 --> 00:10:15,460
Den är på vår github.
150 00:10:15,460 --> 00:10:17,000
github.com.
151 00:10:17,000 --> 00:10:18,020
forward slash Sensepost.
152 00:10:18,020 --> 00:10:18,780
forward slash birp.
153 00:10:18,780 --> 00:10:19,820
B-I-R-P.
154 00:10:19,820 --> 00:10:21,600
Och några av mina andra verktyg som jag har skrivit.
155 00:10:21,600 --> 00:10:23,400
Jag har inte migrerat till Sensepost-portalen än.
156 00:10:23,400 --> 00:10:24,420
Det är under min github.
157 00:10:24,420 --> 00:10:25,960
github.com slash syng.
158 00:10:25,960 --> 00:10:28,000
forward slash mainframe underscore bruta.
159 00:10:28,000 --> 00:10:30,820
Och om folk vill följa dig på Twitter.
160 00:10:30,820 --> 00:10:32,100
Det är på syng.
161 00:10:32,100 --> 00:10:32,620
på syng.
162 00:10:32,620 --> 00:10:34,660
S-I-N-G.
163 00:10:34,660 --> 00:10:36,960
Coolt, fantastiskt.
164 00:10:36,960 --> 00:10:42,600
Jag ser fram emot att lyssna på många av de andra talen här.
165 00:10:42,600 --> 00:10:43,880
Konferensen har bara börjat.
166 00:10:43,880 --> 00:10:46,940
Men din presentation var riktigt fin.
167 00:10:46,940 --> 00:10:52,320
Jag är glad att jag valde den över två andra väldigt intressanta tal som jag missade.
168 00:10:52,320 --> 00:10:53,860
Det är väldigt vackert. Tack.
169 00:10:53,860 --> 00:10:56,160
Thank you for taking the time to talk to us.
170 00:10:56,160 --> 00:10:58,720
And wish you luck. Thanks.
171 00:10:58,720 --> 00:10:59,740
Thanks very much.
172 00:10:59,740 --> 00:11:00,260
All right.
173 00:11:00,260 --> 00:11:03,580
Så det var allt för den här korta stunden.
174 00:11:03,580 --> 00:11:07,680
Vi hörs igen. Ha det gott. Hej.