分类 linux 中的文章

挖矿病毒5-私有云机房挖矿病毒定位

前言

6月16日晚,一位朋友咨询說私有云机房服务器有占用cpu比较高的进程无法kill,我通过向日葵远程跳板机分析了下,发现一些不同于以往挖矿病毒有趣的现象,总结下

1、初查

初步筛查,发现crontab、top如其他挖矿病毒差不多

1.1 进程名称模仿系统进程

初步看进程名kthreaddk,这个挖矿的进程名挺像内核进程kthreadd,但是系统内核进程不太可能cpu占用异常,就继续往下检查 查看crontab,发现异常,结果多次执行,发现路径会变。。。,总结下规律,发现一直在/dev/cpu/、/dev/mapper/、/dev/disk/、/dev/一直出现在这几层跳跃

……

阅读全文

git删除历史提交记录

前言

git如果碰到敏感信息提交,需要清理历史提交记录,在不删库的前提下,如何亡羊补牢呢?可以用下面的重写分支操作清理提交历史记录

1、重写分支

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch src/main/resources/demo.txt' HEAD

# 如果出现冲突要增加-f
git filter-branch  -f --index-filter

# 管理reflog信息
git reflog expire --expire=now --all  

# 清理不必要的文件并优化本地存储库
git gc --prune=now  
git gc --aggressive --prune=now

# 强制推送主分支
git push --all --force
……

阅读全文

转载-shell 13问

前言

shell编写入门的时候,有幸看到比较经典的 shell 13问,碰到有大佬整理成 markdown 格式,转载过来

1、为何叫做 Shell?

我们知道计算机的运作离不开硬件,但却无法直接操作硬件,硬件的驱动只能通过一种称之为“操作系统(OS,Opertating System)的软件来管控。Linux 严格来说是一个操作系统(OS)。

……

阅读全文

linux后台执行可用方式整理

前言

最近答疑群友如何后台运行 ssh 连接后的操作,整理了下日常常见的后台执行方式,方便知识梳理。

1、nohup方式

1
2
# nohup sh shell.sh &
查看日志:tail -f nohup.out

2、disown方式

1
2
# sh shell.sh & disown
查看日志:断开终端后,不能再查看日志

3、screen方式

执行screen,如果命令不存在,需要先安装:

1
# yum install screen -y

新建一个屏幕:

1
# screen -S screen_name

执行命令:

1
# sh shell.sh

依次按 Ctrl+A 与 D (无 Ctrl) 脱离该屏幕,此时程序仍运行在后台。

……

阅读全文

logrotate日志切割

前言

无意间找到nginx下的日志切割组件,比以前用脚本每日备份好多了,研究了一番用法

1、关于日志切割

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
  logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

……

阅读全文

vmstat介绍

前言

vmstat是virtual memory statistics 的缩写,它是Linux下一个非常有用的监控工具,除了内存之外,还提供 块 IO、CPU 时间 等额外的信息

1、语法

vmstat 命令的执行不需要特殊的权限,普通用户就可以执行,其语法形式如下

1
vmstat [options] [delay [count]]

delay 表示数据更新间隔,单位是秒,如果没有指定此值,表示系统启动以来的平均时间,而且此时只输出一次结果
count 表示输出次数,如果没有指定该值,但是指定了 delay 的值,则表示无限次

……

阅读全文

挖矿病毒4-容器挖矿病毒清理

前言

1月26日,运维同学收到告警邮件,告诉我某台测试服务器中了挖矿病毒,心想怎么最近挖矿这么猖狂…

1、分析准备

仍然下载是busybox

1
2
3
4
wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox 
chmod +x busybox
cp busybox /usr/bin 
busybox  top

2、按步骤排查

剩余步骤跟挖矿病毒2-分析和排查思路一样,只是所有的命令前面是 busybox command
不过这次是容器挖矿,ECS 排查步骤仍然走一遍,但是没啥收货,但是恶意进程还是可以找到的

……

阅读全文

挖矿病毒3-分析和清理过程

前言

1月23日,公司邮箱收到说阿里云报了挖矿病毒的警告

1、分析

这次思路改进了些,起初有个只是定时任务没被清理,阿里云通过定时任务关键字"pool.minexmr.com:4444"报了蠕虫病毒,但是根据关键字查看,这像挖矿
然后 top 了半天没看到结果,怀疑是top被篡改了???然后进了/usr/bin/核对下 top 的时间,发现没差异呀,但是本着稳妥起见,还是下载 busybox

……

阅读全文

nmap参数详解

前言

用nmap扫描域名整理下一些细节参数

1、语法

1
nmap [扫描类型] [选项] {目标规格}

2、选项

目标规格: 可以通过主机名,IP地址,网络等

例如:

1
2
3
4
5
scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>:从主机/网络列表输入
  -iR <num hosts>:选择随机目标
  --exclude <host1 [,host2] [,host3],...>:排除主机/网络
  --excludefile <exclude_file>:从文件中排除列表

2.1 主机发现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  -sL:列表扫描 - 只需列出要扫描的目标
  -sn:Ping扫描 - 禁用端口扫描
  -Pn:将所有主机视为在线 - 跳过主机发现
  -PS / PA / PU / PY [portlist]:向给定端口发送TCP SYN / ACK,UDP或SCTP
  -PE / PP / PM:ICMP回显,时间戳和网络掩码请求发现探测
  -PO [协议列表]:IP协议Ping
  -n / -R:不要做DNS解析/总是解决[默认:有时]
  --dns-servers <serv1 [,serv2],...>:指定自定义DNS服务器
  --system-dns:使用操作系统的DNS解析器
  --traceroute:跟踪每个主机的跳转路径

2.2 扫描技术

1
2
3
4
5
6
7
8
  -sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon扫描
  -sU:UDP扫描
  -sN / sF / sX:TCP Null,FIN和Xmas扫描
  --scanflags <flags>:自定义TCP扫描标志
  -sI <zombie host [:probeport]>:空闲扫描
  -sY / sZ:SCTP INIT / COOKIE-ECHO扫描
  -sO:IP协议扫描
  -b <FTP中继主机>:FTP跳转扫描

2.3 端口规格和扫描订单

1
2
3
4
5
6
  -p <端口范围>:仅扫描指定的端口
    例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  -F:快速模式 - 扫描比默认扫描更少的端口
  -r:连续扫描端口 - 不要随机化
  --top-ports <number>:扫描<number>最常用的端口
  --port-ratio <ratio>:扫描端口比<ratio>更常见

2.4 服务/版本检测

1
2
3
4
5
  -sV:探测打开端口以确定服务/版本信息
  --version-intensity <level>:从0(亮)到9(尝试所有探针)
  - 变换光:极限探测器(强度2)
  --version-all:尝试每一个探针(强度9)
  --version-trace:显示详细的版本扫描活动(用于调试)

2.5 脚本扫描

1
2
3
4
5
6
7
8
  -sC:相当于--script = default
  --script = <Lua scripts>:<Lua scripts>是逗号分隔的列表目录,脚本文件或脚本类别
  --script-args = <n1 = v1,[n2 = v2,...]>:为脚本提供参数
  --script-args-file = filename:在文件中提供NSE脚本参数
  --script-trace:显示发送和接收的所有数据
  --script-updatedb:更新脚本数据库。
  --script-help = <Lua脚本>:显示有关脚本的帮助。
                          <Lua脚本>是一个逗号分隔的脚本文件列表脚本的类别。

2.6 操作系统检测

1
2
3
  -O:启用操作系统检测
  --osscan-limit:将操作系统检测限制为有希望的目标
  - 可以猜测:猜测操作系统更积极

2.7 时间和性能

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  采取<time>的选项以秒为单位,或追加“ms”(毫秒)
  '(秒),'m'(分钟)或'h'(小时)到该值(例如30m)。
  -T <0-5>:设置时间模板(越高越好)
  --min-hostgroup / max-hostgroup <size>:并行主机扫描组大小
  --min-parallelism / max-parallelism <numprobes>:探针并行化
  --min-rtt-timeout / max-rtt-timeout / initial-rtt-timeout <time>:指定
      探测往返时间。
  --max-retries <attempts>:端口扫描探测重传的Caps number。
  --host-timeout <time>:在此之后放弃目标
  --scan-delay /  -  max-scan-delay <time>:调整探测器之间的延迟
  --min-rate <number>:发送速度慢于<number>每秒
  --max-rate <number>:发送数据包速度不超过每秒的<number>

2.8 防火墙/IDS逃避和SPOOFING

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  -F; --mtu <val>:片段数据包(可选地,给定MTU)
  -D <decoy1,decoy2 [,ME],...>:用诱惑遮掩扫描
  -S <IP_Address>:欺骗源地址
  -e <iface>:使用指定的接口
  -g /  -  source-port <portnum>:使用给定的端口号
  --data-length <num>:将随机数据附加到发送的数据包
  --ip-options <options>:使用指定的ip选项发送数据包
  --ttl <val>:设置IP生存时间字段
  --spoof-mac <mac address / prefix / vendor name>:欺骗您的MAC地址
  --badsum:发送具有假TCP / UDP / SCTP校验和的数据包

2.9 OUTPUT

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
  -oN / -oX / -oS / -oG <file>:正常输出扫描,XML,s | <rIpt kIddi3,
     和Grepable格式,分别给给定的文件名。
  -oA <basename>:一次输出三种主要格式
  -v:增加详细程度(使用-vv或更多的效果)
  -d:增加调试级别(使用-dd或更多更大的效果)
  --reason:显示端口处于特定状态的原因
  --open:仅显示打开(或可能打开)的端口
  --packet-trace:显示发送和接收的所有数据包
  --iflist:打印主机接口和路由(用于调试)
  --log错误:将错误/警告记录到正常格式的输出文件中
  --append-output:追加而不是clobber指定的输出文件
  --resume <filename>:恢复中止的扫描
  --stylesheet <path / URL>:将XML输出转换为HTML的XSL样式表
  --webxml:来自Nmap.Org的引用样式表,用于更多的便携式XML
  --no-stylesheet:防止XSL样式表与XML输出关联

2.10 MISC

1
2
3
4
5
6
7
8
  -6:启用IPv6扫描
  -A:启用操作系统检测,版本检测,脚本扫描和跟踪路由
  --datadir <dirname>:指定自定义Nmap数据文件位置
  --send-eth /  -  send-ip:使用原始以太网帧或IP数据包发送
  --privileged:假设用户是完全特权的
  --unprivileged:假设用户缺少原始套接字权限
  -V:打印版本号
  -h:打印此帮助摘要页面。

2.11 例子

1
2
3
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p80

3、常见的nmap例子

我们要进行对icmp的扫描,我们可以这样写

1
nmap -sP ipaddress

我们要对目标半开放式端口扫描不想在留下日志记录怎么整

1
namp -sS -p port ipadress

下面介绍一些nmap的审计脚本

snmp默认团体名/弱口令漏洞及安全加固

审计snmp弱口令

1
nmap –sU –p161 –script=snmp-brute ipaddress 

iis短文件名泄露

1
nmap -p 80 --script http-iis-short-name-brute ipaddress

Memcached未授权访问漏洞

1
nmap -sV -p 11211 -script memcached-info ipaddress

验证https.sys远程代码执行漏洞

1
nmap -sV - (-) script http-vuln-cve2015-1635 ipaddress

心脏出血

1
nmap -sV --scipt=ssl-heartbleed ipaddress

mongodb未授权访问

1
nmap -p 27017 --script mongodb-info ipaddress

redis未授权访问

1
nmap -p 6370 --script redis-info ipaddress

elastticsearch未授权访问

1
nmap --script=http-vuln-cve2015-1427 --script-args command='ls' ipaddress

rsync未授权漏洞

1
nmap -p 873 --script rsync=brute ==script=args 'rsync-brute.module=www'

http拒绝服务

1
nmap --max-paralleism 800-script http=slowloris siteaddress

ftp弱口令暴力破解

1
nmap --script ftp-brute --script-args brute.emptypass=true,ftp-brute.timeout=30,userdb=/root/dirtionary/usernames.txt,brute.useraspass=true,passdb=/root/dirtionary/passwords.txt,brute.threads=3,brute.delay=6 ipaddress

检测CVE-2011-2523中的ftp-vsftpd-backdoor

1
nmap -T2 --script ftp-vsftpd-backdoor ipaddress

验证http中开启的-methods 方法

1
nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/siteaddress

验证HTTP.sys 远程代码执行

1
nmap -sV --script http-vuln-cve2015-1635 ipaddress

验证 SSL POODLE information leak

1
nmap -sV -p 443 --version-light --script ssl-poodle ipaddress

验证http 中开启了put 方法

1
nmap --script http-put --script-args http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt ipaddress

验证mysql 匿名访问

1
nmap --script mysql-empty-password ipaddress

验证cve2015-1427 漏洞

1
nmap --script http-vuln-cve2015-1427 --script-args command=ls ipaddress

验证cve2014-8877漏洞

1
nmap -Pn --script http-vuln-cve2014-8877 --script-args http-vuln-cve2014-8877.cmd=dir,http-vuln-cve2014-8877.uri=/wordpress ipaddress

验证Cisco ASA中的CVE-2014-2126,CVE-2014-2127,CVE-2014-21,CVE-2014-2129漏洞

1
nmap -p 443 --script http-vuln-cve2014-2126,http-vuln-cve2014-2127,http-vuln-cve2014-2128,http-vuln-cve2014-2129 ipaddress

验证低安全的 SSHv1,sslv2协议

1
nmap --script sshv1,sslv2 siteadress

验证CVE-2014-0224 ssl-ccs-injection

1
nmap -Pn --script ssl-ccs-injection ipaddress

验证ssl-cert证书问题

1
nmap -v -v --script ssl-cert ipaddress

验证SSL证书的有限期

1
nmap -Pn --script ssl-date siteadress

验证 Debian OpenSSL keys

1
nmap -p 443 --script ssl-known-key ipaddress

验证弱加密SSL套件

1
nmap --script ssl-enum-ciphers ipaddress

验证CVE 2015-4000

1
nmap --script ssl-dh-params siteadress

验证多种SSL漏洞问题

1
nmap 203.195.139.153 --vv --script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2

在网络中检测某主机是否存在窃听他人流量

1
nmap --script sniffer-detect ipaddress

暴力破解telnet

1
nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst --script-args telnet-brute.timeout=8s ipaddress

验证telnet是否支持加密

1
nmap --script telnet-encryption ipaddress

精准地确认端口上运行的服务

1
nmap -sV --script unusual-port ipaddress

收集VNC信息

1
nmap --script vnc-info ipaddress

暴力破解VNC

1
nmap --script vnc-brute --script-args brute.guesses=6,brute.emptypass=true,userdb=/root/dictionary/user.txt,brute.useraspass=true,passdb=/root/dictionary/pass.txt,brute.retries=3,brute.threads=2,brute.delay=3 ipaddress

Web敏感目录扫描

1
nmap -p 80 --script=http-enum.nse XXX.XXX.XXX.XXX
……

阅读全文

git的日常操作命令整理

前言

git的一些常见命令操作整理

1、下载

depth用于指定克隆深度,为1即表示只克隆最近一次commit,可以减少下载的容量

1
git cone --depth=1 {http://xxx/url}

2、撤销commit

默认撤销,不撤销本地代码,撤销commit,并且撤销git add

1
git reset --mixed HEAD^

不删除工作空间改动代码,撤销commit,不撤销git add

1
git reset --soft HEAD^

删除工作空间改动代码,撤销commit,撤销git add

……

阅读全文

最近文章

分类

标签

其它