Robin

LiuGuobin's blog

多线程概念

  • 程序是指令和数据的集合
  • 进程是执行程序的一次过程
  • 线程是CPU调度执行的单位,无法人为干预
  • 一个进程包括多个线程
  • 分为真实多线程和模拟多线程

创建线程三种方式

阅读全文 »

父进程

自已创建一个或者多个进程

子进程

fork创建的。这个函数被调用一次但是返回两次,子进程返回0,父进程返回子进程id。

fork之后,操作系统会赋值一个与父进程完全相同的子进程,虽然是父子关系,但是更像是兄弟关系。这两个进程共享代码,但是数据空间是互相独立的,数据空间、指令、指针完全相同,子进程拥有当前父进程运行到的位置(PC相同)。
阅读全文 »

杀死进程
top d1   //运行top命令后,键入大写字母P按cpu排序

ps aux | sort -k4nr   //运行top命令后,键入大写字母M按内存排序

ls -la /proc/$pid/exe   //查找进程文件

strace -tt  -T -e  trace=all  -p $pid   //跟踪进程运行

lsof -p $pid   //进程打开的文件

netstat -anltp | grep $pid   //查看进程端口情况
查看账号
awk -F ":" '$3==0{print $1}' /etc/passwd   //查看特权用户

awk '/\$1|\$6/{print $1}' /etc/shadow   //可远程登录的账号信息

cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"   //sudo的账号

w   //当前用户及其行为

lastlog   //所有用户最后登录时间

last   //所有用户关键信息

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'   //成功登录日期、用户名及ip

//查看试图爆破主机的ip
grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more
grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c 

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort   //查看爆破root的ip

grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr   //查看爆破的用户名字典
锁定目录
阅读全文 »

文件无法删除

被进程占用:

lsof xxxx.xx

文件存在隐藏属性:

sattr xxxx.xx
chattr -a xxxx.xx
chattr -i xxxx.xx
阅读全文 »

介绍

暴力破解一般针对
ssh、mysql、ftp、redis、mongodb、smtp

SSH暴力破解
  1. 使用netstat -pantu查看网络状态,重点是PID(当被破解时会有大量的ESTABLISHED)

  2. 使用awk -F: '{if($3==0) print $1}' /etc/passwd查找特殊权限账号(默认root)

  3. 查找可以使用ssh登录的账号

    s=$( sudo cat /etc/shadow | grep '^[^:]*:[^\*!]' | awk -F: '{print $1}');for i in $s;do cat/etc/passwd | grep -v "/bin/false\|/nologin"| grep $i;done | sort | uniq |awk -F: '{print$1}'
    
  4. 查看正在连接的ssh-session

    who -a
    w
    last -p now
    sudo netstat -tnpa | grep 'ESTABLISHED.*sshd'
    pgrep -af sshd
    echo $SSH_CONNECTION
    ss | grep ssh
    
  5. 查看所有的账号信息

    /var/log/auth.log(Ubuntu)
    /var/log/secure(centOS)
    列出当前账户         
    who am i  
    
  6. 查看登录日志

    # 查看日志
    cd /var/log
    # 成功登录
    cat /var/log/auth.log | grep "Accept"
    # 正常退出
    cat /var/log/auth.log | grep "pam_unix(sshd:session): session closed"
    # 密码错误
    cat /var/log/auth.log | grep "authentication failure"
    # 连续错误
    cat /var/log/auth.log | grep "message repeated 2 times"
    
  7. 统计数据

    # 登录失败的用户名及其次数
    grep "Failed password" /var/log/auth.log|perl -e 'while($_=<>){ /for(.*?)from/; print"$1\n";}'|sort|uniq -c|sort -nr
    # 登录失败的IP及其次数
    cat /var/log/auth.log | grep "Failed password for" | grep "root" | grep -Po '(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){3}' |sort|uniq -c|sort -nr
    
  8. 加固防护
    升级SSH版本至少为 7.7版本以上,7.7及以下版本存在SSH用户名枚举
    加强口令复杂程度
    禁止root用户登录,可以通过其他用户su到root
    安装 fail2ban 来进行防御

Mysql暴力破解
阅读全文 »

概述

正常情况下遇到勒索病毒就两种方法,要么找办法解开要么给钱。

处置方法
  1. 查找勒索病毒特征,收集相关信息
  2. 深信服千里目实验室公众号直接回复病毒关键字
  3. 安全响应及EDR知识赋能平台
  4. Freebuf
  5. 淘宝、闲鱼
解决方法
阅读全文 »

获取事件告警信息

监控EDR、态势感知、防火墙等平台查看威胁告警以及日志。

定位后门文件
根据告警信息定位后门文件位置,查找进程pid
lsof | grep xxxx.xx
lsof /root/xxxx.xx
fuser /root/xxxx.xx
查看外连事件详情
阅读全文 »

第一步:获取信息
  • 下线服务器之后从DNS服务器、防火墙、态势感知平台等地方获取到攻击事件详细信息
  • 根据上传来源的IP/域名,在威胁情报平台查询确定木马类型
  • 获取异常进程的pid
CPU占用:
top -c -o %CPU
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5

内存占用:
top -c -o %MEM
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5

网络占用:
安装后使用nethogs或者jnettop进行查询

根据进程名或字符串查询:
pidof "name"
ps -aux | grep "name"
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
pgrep -f "name"
  • 根据pid查询详细信息(当查询不到时有可能是/proc/pid隐藏了)
lsof -p pid
pwdx pid
systemctl status pid
cat /proc/pid/maps
ls -al /proc/pid/exe
阅读全文 »

Nmap常用命令
nmap hostname/ip或者多个ip或者子网192.168.123.*
-iL ip.txt 扫描ip.txt的所有ip
-A 包含了-sV,-O,探测操作系统信息和路由跟踪(激烈扫描,一般不用)
-O 探测操作系统信息
-sV 查找主机服务版本号
-sA 探测该主机是否使用了包过滤器或防火墙(建议使用wafw00f)
-sS 半开扫描,一般不会记入日志,不过需要root权限。
-sT TCP connect扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信息。
-sP ping扫描,一般最好不加,因为有的主机会禁止ping,却实际存在。
-Pn 扫描之前不使用ping,适用于防火墙禁止ping,比较有用。
-sN TCP空扫描
-F 快速扫描
-p 指定端口/端口范围
-oN 将报告写入文件
-v 详细信息
-T<0-5> 设定速度
使用脚本:
--script all 使用所有脚本
--script=sql.injection.nse sql注入
--script="smb*" 扫smb系列

一、4 大功能:分别为主机发现(参数-sn)、端口扫描(-sS -sU)、版本侦测(–sV)、OS侦测(-O)

二、扫描方式有:tcp connect()、TCP SYN scanning、TCP FIN scanning、Nullscan等

三、绕过 ping 扫描参数为:nmap -Pn XXX.XXX.XXX.XXX

四、漏洞检测可直接 nmap 目标 --script=auth,vuln
SQLmap

-u 单个URL 
-m xx.txt 多个URL
-d "mysql://user:password@10.10.10.137:3306/dvwa" 作为服务器客户端,连接数据库
--data post/get都适用
-p 指定扫描的参数
-r 读取文件
-f 指纹信息
--tamper 混淆脚本,用于应用层过滤
--cookie --user-agent --host 对http头的修改
--threads 并发线程,默认为1
--dbms MySQL<5.0> 指定数据库或版本
–level=LEVEL 执行测试的等级(1-5,默认为 1)
–risk=RISK 执行测试的风险(0-3,默认为 1) Risk升高可造成数据被篡改等风险
–current-db 获取当前数据库名称
–dbs 枚举数据库管理系统数据库
–tables 枚举 DBMS 数据库中的表
–columns 枚举 DBMS 数据库表列
-D DB 要进行枚举的数据库名
-T TBL 要进行枚举的数据库表
-C COL 要进行枚举的数据库列
-U USER 用来进行枚举的数据库用户
常用的tamper:
base64encode.py 转为b64编码
charencode.py url编码
chardoubleencode.py 双URL编码
unmagicquotes.py 宽字节
randomcomments.py 用`/**/`分割SQL关键字
space2plus.py space2comment.py space2xxxx.py 替换空格为xx

Post注入:
sqlmap -r "数据包地址" -p "参数" -dbms 数据类型
Get注入:
sqlmap -u "注入点地址" --dbms 参数

sqlmap进行交互式写shell:
1-前提条件:最高权限、知道web网站绝对路径、能获取到cookie
2-sqlmap.py -u "注入点地址" --cookie="cookie值" --os-shell
-echo “一句话木马”>网站的绝对路径
3-输入web网站的绝对路径
4-传木马
菜刀、蚁剑、冰蝎、CS、哥斯拉
阅读全文 »

内网渗透的流程
  1. 从外网拿下一个主机当做跳板
  2. net user /domian命令查看跳板机是否在域内,探测存活主机
  3. 提权、提取hash
  4. 进行横向移动,定位dc位置
  5. 查看是否有能直接提权域管的漏洞,拿到dc控制权后进行提权
  6. 最后制作黄金票据做好维权,清理日志
内网渗透的一些基础概念
简写 全称 描述
DC Domain Controller 域控
KDC Key Distribution Center 秘钥分发中心
AD Account Database 账户数据库
ST Service Tickets ST服务票据,由TGS服务发送
AS Authentication Server 身份验证服务,认证用户的身份,并为其发放TGT的服务
AP Application Server 提供用户所需的服务
TGS Ticket Granting Server 票据授予发放服务
TGT Ticket Granting Ticket TGT认证票据,由AS服务发放,存储在内存,默认有效期为10小时
黄金票据 Golden Ticket 使用域账号krbtgt的NTLM Hash进行加密
白银票据 Silver Ticket 使用服务账户的NTLM Hash进行加密
socket通信与代理
阅读全文 »

拿到目标站以后的渗透思路?

渗透测试流程:

  1. 项目前期准备工作
  2. 信息收集:whois、网站源IP、开放端口、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙WAF
  3. 自动化漏洞扫描:Nessus, AWVS,XRAY
  4. 手动挖掘:逻辑漏洞
  5. 验证漏洞
  6. 修复建议
  7. (如果有)基线检查/复验漏洞
  8. 输出报告
如何绕过CDN查真实IP?
  1. 多地ping看是否有cdn(基本上非洲的那些ping就是真的了)
  2. 邮件订阅或者rss订阅(QQ邮箱的ip溯源)
  3. 二级域名可能不会做cdn
  4. nslookup http://xxx.com 国外dns
阅读全文 »

首先看简历

简历不要乱吹,会什么就写什么;
只要你写在简历上的面试官都会着重问。

第一个问题

基本上第一句是先让你做个自我介绍
你说的东西后面一定会问下去,所以建议说点项目或者设备的东西,先不要这么快上强度。

判断恶意外连/分析威胁情报
阅读全文 »