Paul C's Blog

To be funny,to grow up!

0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import hashlib
#hashlib简单使用
def md5(arg):#这是加密函数,将传进来的函数加密
md5_pwd = hashlib.md5(bytes('abd',encoding='utf-8'))
md5_pwd.update(bytes(arg,encoding='utf-8'))
return md5_pwd.hexdigest()#返回加密的数据
def log(user,pwd):#登陆时候时候的函数,由于md5不能反解,因此登陆的时候用正解
with open('db','r',encoding='utf-8') as f:
for line in f:
u,p=line.strip().split('|')
#strip()是删除首尾的字符串
#split()是将字符串按某一个字符分割,且分割n次。如按‘.’分割n次
if u ==user and p == md5(pwd):#登陆的时候验证用户名以及加密的密码跟之前保存的是否一样
return True
def register(user,pwd):#注册的时候把用户名和加密的密码写进文件,保存起来
with open('db','a',encoding='utf-8') as f:
temp = user+'|'+md5(pwd)
f.write(temp)

i=input('1表示登陆,2表示注册:')
if i=='2':
user = input('用户名:')
pwd =input('密码:')
register(user,pwd)
elif i=='1':
user = user = input('用户名:')
pwd =input('密码:')
r=log(user,pwd)#验证用户名和密码
if r ==True:
print('登陆成功')
else:
print('登陆失败')
else:
print('系统不存在此功能模块')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!D:/softwares/Python3.7
import hashlib
hash = hashlib.md5()#md5对象,md5不能反解,但是加密是固定的,就是关系是一一对应,所以有缺陷,可以被对撞出来
hash.update(bytes('paul',encoding='utf-8'))#要对哪个字符串进行加密,就放这里
print(hash.hexdigest())#拿到加密字符串
# hash2=hashlib.sha384()#不同算法,hashlib很多加密算法
# hash2.update(bytes('admin',encoding='utf-8'))
# print(hash.hexdigest())


hash3 = hashlib.md5(bytes('abd',encoding='utf-8'))
''' 如果没有参数,所以md5遵守一个规则,生成同一个对应关系,如果加了参数,
就是在原先加密的基础上再加密一层,这样的话参数只有自己知道,防止被撞库,
因为别人永远拿不到这个参数
'''
hash3.update(bytes('admin',encoding='utf-8'))
print(hash3.hexdigest())


程序流程

显示网页:要模仿原网页的标题栏、简介、输入框;

搭建一个数据库。

写一个post的存储位置;

保存用户post的用户名和密码,或者仅保存cookie。

无论用户怎么输入,均报错后跳转到正确网址。

csp的后缀映射我也懒的加了,相信域名都不关注的人也不会关注后缀的。

在Python3下安装好jupyter后

1.设置jupyter的默认运行路径

1
2
jupyter notebook --generate-config`
C:\Users[用户名].jupyter\jupyter_notebook_config.py

找到 #c.NotebookApp.notebook_dir = ‘’,去掉该行前面的“#”;在这里设置路径

2.安装Python2内核

在我的电脑上是python2.7和python3.9。其中python2.7下的python.exe被我重命名为python2。

2.1 在python2下安装ipykernel

Read more »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

# coding: utf-8



import os
import time
import datetime



path=os.getcwd()
newpath="_posts"



def TimeStampToTime(timestamp):
timeStruct = time.localtime(timestamp)
return time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)


def get_FileCreateTime(file):
t = os.path.getctime(file)
ctime=TimeStampToTime(t)
return ctime[0:10]



def rename_files(path):
filelist=os.listdir(path)
for file in filelist:
filename=file.split('.')
os.rename(file,filename[0]+'.md')
print(filename[0])

#def note_code(path):

rename_files(path)

wireshark

1
2
net start npf
path %PATH%; E:\rtools\\;

注:本期内容参考tianyi网络安全公众号

1580899594410

对于*密码,dump内存获取其中内容。

本期工具

  • procdump

  • strings

  • Win32Gru/Notepad++

步骤

1.获取EasyConnect进程的PID号

Read more »

轻装前行

今天收拾杂物,搜出来许多初高中的奖状,其中大部分是初中时期获取的。

初中是我过往的生活中最努力的时候,所以那时候学习保持在最好的情形下,还能参加各种比赛、坚持运动。

在我把那些奖状一张张从封皮里扯出叠成一堆,说把这些用来擦脏处时,我爸感叹了一句,那是过去的辉煌啊。

我得过且过了很久很久,久的我都忘记了自己最大的优点是坚持,是努力。过去的荣誉属于过去的我,现在的我要获取现在的荣耀。

ADB.Miner会感染Amazon FireTV (使用FireOS 7,一个安卓分支)操作系统,利用adb安卓调试接口传播,并挖矿。

投入载荷会下载执行 hxxp://188.209.52.142/c,或者是hxxp://188.209.52.142/w。这两个脚本的区别仅在下载方式是wget/curl,下文不再区分。两个脚本的主体功能一致,包括:

  • 尝试进一步从 188.209.52.142 下载 fbot.{arch} 恶意样本;
  • 卸载 com.ufo.miner,一个类似ADB.Miner的挖矿组件;
  • 完成自身清理工作。

下载得到的 fbot.{arch} 是个mirai的变种,主要特点包括:

  • C2:musl.lib:7000,当前在EmerDNS上的解析地址为 66.42.57.45,Singapore/SG Singapore
  • 扫描和传播:针对 TCP 5555 adb 端口扫描。扫描成功后,会下载hxxp://188.209.52.142/c,完成对蠕虫自身的传播。
  • 进程清理:样本中会遍历 /proc/pid/exe 目录下面的特定进程,如smi、xig、rig等。枚举得到符合条件的进程后,会杀掉该进程。

主控域名 musl.lib 在EmereDNS上的解析

Fbot蠕虫作者选择了OpenNic公司的公共DNS服务。蠕虫中硬编码了一组OpenNic公共服务器IP地址,被感染的机器通过向这些服务器请求,得到 musl.lib 的EmerDNS解析IP。

扫描器的版本有:

1
2
3
4
5
6
hxxp://188.209.52.142/fbot.aarch64     #扫描器,下同,完成自身的蠕虫传播
hxxp://188.209.52.142/fbot.arm7
hxxp://188.209.52.142/fbot.mips
hxxp://188.209.52.142/fbot.mipsel
hxxp://188.209.52.142/fbot.x86
hxxp://188.209.52.142/fbot.x86_64

Bypass

1.特殊字符的绕过

@,#,/,?,\,\\\,//绕过。
base64加码,URL编码绕过

2.白名单绕过

白名单的:找到类似的域名,或者采用多级跳转。

3.xip.io后缀绕过

Read more »