Skip to content

Commit d6f9949

Browse files
committed
merge
2 parents 30389c6 + ae9ea94 commit d6f9949

File tree

6 files changed

+4738
-3
lines changed

6 files changed

+4738
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ sisron | Sisron | TOMB, Win32/Agent.WRQ, Trojan.Scar | [link](https://www.johan
3838
proslikefan | Proslikefan | | [link](https://johannesbader.ch/2016/06/proslikefan/)
3939
vawtrak | Vawtrak | | [link](http://www.threatgeek.com/2016/11/vawtrak-dga-round-2.html)
4040
unnamed_downloader | Unnamed Downloader | |
41+
chinad | Chinad | | [link](https://github.com/360netlab/DGA/issues/1)

chinad/dga.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import string
2+
import hashlib
3+
import argparse
4+
from datetime import datetime
5+
6+
def dga(date):
7+
TLDS = ['.com', '.org', '.net', '.biz', '.info', '.ru', '.cn']
8+
alphanumeric = string.ascii_lowercase + string.digits
9+
10+
"""
11+
Chinad generates 1000 domains, but only 256 different domains possible
12+
"""
13+
for nr in range(0x100):
14+
data = "{}{}{}{}".format(
15+
chr(date.year % 100),
16+
chr(date.month),
17+
chr(date.day),
18+
chr(nr)) + 12*"\x00"
19+
20+
h = hashlib.sha1(data).digest()
21+
h_le = []
22+
for i in range(5):
23+
for j in range(4):
24+
h_le.append(h[i*4 + (3-j)])
25+
26+
domain = ""
27+
for r in h_le[:16]:
28+
domain += alphanumeric[(ord(r) & 0xFF) % len(alphanumeric)]
29+
30+
r = ord(h_le[-4])
31+
domain += TLDS[r % len(TLDS)]
32+
yield domain
33+
34+
if __name__ == "__main__":
35+
parser = argparse.ArgumentParser(description="gozi dga")
36+
parser.add_argument("-d", "--date",
37+
help="date for which to generate domains")
38+
args = parser.parse_args()
39+
if args.date:
40+
d = datetime.strptime(args.date, "%Y-%m-%d")
41+
else:
42+
d = datetime.now()
43+
for domain in dga(d):
44+
print(domain)

chinad/example_domains.txt

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
8f6bacmw30xxv6sc.cn
2+
486txu3yjly0xcmz.ru
3+
xmi6x8zg9rkanmyo.info
4+
spy1jhdbmvt2ueva.net
5+
evybt5gtf2tprvbi.info
6+
7qbys97e3pcw262c.info
7+
kz89iy97c7n7vbur.biz
8+
zmkvvlsvkbffnuez.ru
9+
tr1yy6lxtry1gsts.biz
10+
mfq6uwq3p2hvc8zn.cn
11+
h6a7zf18dahsn1pn.biz
12+
lbhu2b4onvw6mhwu.cn
13+
qaremd11qfdiwb47.biz
14+
2oqhvqa20xu2ttwe.ru
15+
44g3lrtvpga64pr5.cn
16+
u9acs17k4e57g6xb.biz
17+
hq8xhz0bfaivokfj.biz
18+
0i45pk9qg7dqs47n.com
19+
iwmuu5i1evlex7s4.net
20+
79ixpcacfvpime6m.info
21+
fjshewzc8gm6zqxi.cn
22+
ak66f1dqu0zeyyut.com
23+
xnp1hp158frmv7wx.info
24+
qei029wovp2xekkd.org
25+
2zqyvswzzvelsokl.org
26+
amhec4vsx7xqainb.org
27+
8zhme0h4rijyhga6.cn
28+
iebl5wmvtrlbc58s.biz
29+
ktwms0z569yc9rhf.org
30+
8y62m7a5nwzpmy6q.net
31+
2exu30rtfau09f54.cn
32+
shxe5zruqo3jwyny.info
33+
x7eimxy74afpl8fm.net
34+
z5k62dxdluaoylsf.info
35+
h9kqbpfsv2316wfb.ru
36+
bjz760784qyn6hk9.biz
37+
p6att0903vcq0990.info
38+
ydx2wxp97qbwnovc.ru
39+
9pu9x8483w8c9d6x.ru
40+
5uw6psy4176c3su2.net
41+
8wyy1px8hdphtcbx.org
42+
irxrummnh4tybffk.ru
43+
t22thaq66f7agu5c.net
44+
w6sifioj9gueic4s.org
45+
tryky1dpugt6vddi.org
46+
au11rpuxm0j1g99n.ru
47+
8liftcsa53khb1q5.biz
48+
4x9hjqhkaplr7nhf.org
49+
2me2peehmh30okka.org
50+
su94a0vjdfvqd9dq.info
51+
fouz5t4e504c84td.biz
52+
fx43bl9fd608c3yt.com
53+
c8orn8tpewgiu249.com
54+
be8kb6cmn3vmirfa.info
55+
laafnaeeufflpv46.net
56+
5puagitcqs4gja9t.ru
57+
ywrqcrn6p8ezb0mj.org
58+
lrgl32r2bwz37d0o.biz
59+
ea91ok5y2q6tbffd.cn
60+
z9y4zd8yvdwyoj6w.cn
61+
64viez6xtlksjroa.org
62+
az133trnknbt40fx.net
63+
catzchpfu2t34sot.net
64+
dg1nmvbuzy755npl.cn
65+
vobfy4ayddm6umie.cn
66+
rb5rpawtmeiir72m.biz
67+
wvlrgss3l71ussou.net
68+
ce3eyj7th6oupwhv.ru
69+
av8bk9ry9ne4kpqd.org
70+
ju20xf2em1dhjkkt.ru
71+
khe3x9urs9avhhkd.com
72+
5tefm7efjs2h07sz.info
73+
f9cst6fo3mce8eje.com
74+
kmukcqfhfb42lm0c.net
75+
omlmov3hogwwf9mu.biz
76+
xl2hkpzwj7rtqz1i.org
77+
okowafrb2gni2cdl.ru
78+
i7tda8xicli04yuu.biz
79+
3g5rbqjm27goe7vn.org
80+
cfoirrkoxagna5dv.com
81+
ekd33sgezewzbdgv.info
82+
wb0vsxk4xg23w6mz.cn
83+
w1guwgh7fkxnvna3.com
84+
ne30mtmjnsnnsghv.net
85+
ydxy35l00pyiq0di.biz
86+
n24irb0z1w4f8ypf.ru
87+
dra3aghg5c40idpf.org
88+
onps05bhqtovqj3e.com
89+
4vl4ijlyubm3d1dg.org
90+
rwzb2rov21tyfk1v.com
91+
pp772tjg7xnwegif.com
92+
26c549wkn951vo6r.info
93+
tacmw4wa3nhcceln.biz
94+
i70pqurdewvear68.org
95+
2tb5d4u7iltifq7m.com
96+
hpyded2i7rh72ido.org
97+
07gzxa21lsxnzq9a.cn
98+
n4q83upffvcxo8c4.biz
99+
4iyutjrosttfwsgm.info
100+
ucr93yleddp3ecxj.biz
101+
0ucai4r99oisbcr8.org
102+
hotfjnw50vb2x3gy.cn
103+
9qd18cyl2oxrzbq2.ru
104+
f01plq03s86wdtaa.biz
105+
i3bvtex6mj14kb6q.ru
106+
h3s7h59ea691x525.info
107+
kdtr1vvbowlkoate.org
108+
y5otq2r14jhj1671.biz
109+
1tlqsq82c060ki38.net
110+
okuaa9ukg2vdqw37.cn
111+
c3ct4rgci9lsdlyu.ru
112+
zg25l9cfj3m5b0rb.net
113+
yyv4ktgox5sk8vac.info
114+
m5j42r6uiqov2dgm.biz
115+
xlf94vjh5zg293hf.com
116+
47e7aaqtgo91r0e0.biz
117+
6pkilzd4ropy2us8.cn
118+
urzisf8s5yphxxzc.ru
119+
5q9xwlbzhfzdbamy.biz
120+
j00njsqkb95389c7.net
121+
cbrkilnd4jh4jc5u.net
122+
svjujrhvuckfgej6.cn
123+
cdqo47711cm40ebi.net
124+
4i1zorajdtzy7gak.cn
125+
z368bt291tdj2kxf.com
126+
2wpok1bg4lhx8g0a.org
127+
nq93f0wsm9knkczs.biz
128+
l94tytjdfuhj7wy2.com
129+
hrhykgaz4zpjt3ww.cn
130+
4zijlau17jtguu4j.cn
131+
kmjsme81xzimr2an.info
132+
8ki2zdyj8ufgg6yg.biz
133+
yuyn993aba59t7b8.com
134+
egr1wxlvl5jmoowr.info
135+
ua51uqviax0dttp2.org
136+
j769qkdb0qtor7m7.ru
137+
y0ixcudll80wlkzd.info
138+
lyxssd7cpusg94ho.cn
139+
bobrjhjoyaod31rq.info
140+
zse7jo1xvuxa6e50.cn
141+
ok78g0rb5xb5yo77.biz
142+
p5dc0sd6yr2uigxb.ru
143+
nz65e7k43j0p2dew.cn
144+
pityopipqr91zeew.com
145+
fpmcd3ug7j8f5pyb.com
146+
6rph1vuqnnrz41uz.ru
147+
h1igeqf8q146yumf.cn
148+
nx39l89ti1fphrfp.org
149+
n37kmu33u5vdxaq4.org
150+
8n7afiwkq6nvvrx8.org
151+
1vf4tmcyxa5uk4fc.net
152+
kdafjz1hztu9ozru.biz
153+
qxo5tdnmbtx6mh2y.ru
154+
qi1ie7x9j2812h0v.com
155+
ygiwpu0b2lctrsx9.org
156+
p8veux8g4uc585fe.cn
157+
2cpcuu0f6lxitw6e.cn
158+
db96cnztxi7bak9j.info
159+
oe60yx21mje7260l.net
160+
1h25fshfq0thexcl.ru
161+
i6205acyufc8tbhv.org
162+
26h4lruvmrhvijlf.net
163+
m8yhcchizchjeew4.info
164+
vu4crdyxvvgqmk1j.net
165+
9yi3zqnnlpqk75av.info
166+
vuyrkdlagn30qsqz.com
167+
d2pfjv0eirc1zifm.cn
168+
nqfkv7e8klicb17i.info
169+
6rtxnwpc9f3mlc4j.org
170+
iej05slrux7nf135.com
171+
7ti2qlq1w1wu3l6e.net
172+
787ip94vbas018fp.org
173+
mmoyr221iehh4ein.org
174+
kusq5w42d66vw40r.biz
175+
0b92swj26ozsx7he.biz
176+
muet2c6f53a326b2.net
177+
u19dvdjcy8gz0q3b.ru
178+
9b41d8tpcz4ycjly.net
179+
dlm1ckyoeldxrj7n.info
180+
kg3zy3pvd9b9iyk0.ru
181+
cuinn4bn9fmo01fc.org
182+
09hyjuplb1tw63x0.ru
183+
s3ipbf3r61x3z1z5.net
184+
azpg5pcxxa4bc9hd.org
185+
78xwx59e3yqfs8ac.cn
186+
o5y8isrxpvoj2sig.com
187+
xp20weaeqbyqnadr.com
188+
l3dd3nd9wwdq86vz.biz
189+
k6jf2erah5pn4d6c.cn
190+
tbk6n1d21zr01ups.ru
191+
f9pj9e3fb95xntos.org
192+
voo45zhee0zk2j0k.biz
193+
e2ahyrfjj5llbc6e.com
194+
1gppu17j9wwdnbgt.ru
195+
mq5490mhbjht50pj.org
196+
xnitj8o6svdw7mvu.net
197+
aubhkiud6cvgsnyr.ru
198+
ow4xxs3a27mxf1ex.info
199+
374qbdp09bf4easj.net
200+
11nbqa0bkg3dpd1x.info
201+
gi1ihtnppkrungp5.com
202+
k7eihmbt76pf4b3j.com
203+
gz8wlnj3qfauakx9.com
204+
ar21nojlwu5xrtvc.info
205+
6m3y6h27vui9bknw.ru
206+
ww9ccw949q4tbrws.ru
207+
4cprxmjvgb4neh8r.cn
208+
lcowd923ufwmknxn.cn
209+
msp7g99pa3yffmks.biz
210+
vvsfbd0stlkc6uph.com
211+
a7qo8d59tqradjpk.com
212+
3pw1mlf2wc4n5mgt.biz
213+
rqvmk2a9uyfqou34.com
214+
xmyeh3r39utyeogs.info
215+
o3wbe04yn4d4hbj1.ru
216+
8qvl8exzs11xw6er.org
217+
0dbmap3lnudnscyh.cn
218+
bjwbx17hfo9abazc.org
219+
38xr7w7xwkrlnyz5.ru
220+
e88zzdtm2cy4hx7v.org
221+
iainksf9ho8i3edc.com
222+
fuy2n9sktbuhyfvq.ru
223+
au3e960l29m1i7ds.com
224+
sr3lfmsa1d9xava5.biz
225+
r1341xeaxtxh02s6.com
226+
4qxvq8xi7o4rnj75.info
227+
2t1odbnboaj8ydfa.info
228+
fs2vveaegna7h8xd.ru
229+
gczeim1jxxrkjmgv.biz
230+
5lgf4tgeloqb3e7y.ru
231+
dgenfe7yvmklykli.info
232+
vzvs9isjxnuhhe3y.net
233+
xdra03vv7x51b37i.info
234+
5iq5panwshvwz1tf.org
235+
29eu724papkmplen.biz
236+
8g9zd4pga2akyf4t.org
237+
aj15idq30vuiztg7.ru
238+
cpf1vdvsge8i276v.net
239+
n1qb36a8cnd93hme.net
240+
6zzjw9xhtp2qqqsx.org
241+
6adw4d4v8hhytb1m.com
242+
h6gufbbnsr0xljmk.ru
243+
rbcl38y8tiz6sm2t.info
244+
ex6ookufi9ra73vk.cn
245+
4qwcgppr9mukzzzr.com
246+
anq5qoo588vs1t0q.ru
247+
ljai1lj71tl205ls.info
248+
e8f9sgc6nm03j5t7.cn
249+
lgbex97zlrurg8c3.biz
250+
1m8opc7hixj7528n.cn
251+
83d8ivsgcz9fxzpt.ru
252+
nam9t6zszknf0uow.cn
253+
0mv4chxprgdgc1jz.com
254+
4tykeeam20plktdp.info
255+
atn88qvtk9yb3axl.cn
256+
exs2oquga1nu68sf.org

gozi/dga.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55

66
wordlists = {'luther': (4, '.com'), 'rfc4343': (3, '.com'), 'nasa': (5, '.com')}
77

8+
seeds = {
9+
'luther': {'div': 4, 'tld': '.com', 'nr': 12},
10+
'rfc4343': {'div': 3, 'tld': '.com', 'nr': 10},
11+
'nasa': {'div': 5, 'tld': '.com', 'nr': 12},
12+
'gpl': {'div': 5, 'tld': '.ru', 'nr': 10}
13+
}
14+
15+
816
class Rand:
917

1018
def __init__(self, seed):
@@ -21,7 +29,7 @@ def get_words(wordlist):
2129
def dga(date, wordlist):
2230
words = get_words(wordlist)
2331
diff = date - datetime.strptime("2015-01-01", "%Y-%m-%d")
24-
days_passed = (diff.days // wordlists[wordlist][0])
32+
days_passed = (diff.days // seeds[wordlist]['div'])
2533
flag = 1
2634
seed = (flag << 16) + days_passed - 306607824
2735
r = Rand(seed)
@@ -39,15 +47,15 @@ def dga(date, wordlist):
3947
l >>= 1
4048
if len(domain) + l <= 24:
4149
domain += word[:l]
42-
domain += wordlists[wordlist][1]
50+
domain += seeds[wordlist]['tld']
4351
yield domain
4452

4553
if __name__ == "__main__":
4654
parser = argparse.ArgumentParser(description="gozi dga")
4755
parser.add_argument("-d", "--date",
4856
help="date for which to generate domains")
4957
parser.add_argument("-w", "--wordlist", help="wordlist",
50-
choices=wordlists.keys(), default='luther')
58+
choices=seeds.keys(), default='luther')
5159
args = parser.parse_args()
5260
if args.date:
5361
d = datetime.strptime(args.date, "%Y-%m-%d")

0 commit comments

Comments
 (0)