1
0
forked from extern/SSH-Snake

Fix sed which removes itself

This commit is contained in:
Joshua Rogers 2024-01-12 01:01:09 +07:00
parent e0b4cf23a9
commit 92d612fb63
2 changed files with 7 additions and 7 deletions

View File

@ -144,7 +144,7 @@ return 0
} }
function is_func_call() { function is_func_call() {
for (i in funcs) { for (i in funcs) {
if ($0 ~ "^ *" funcs[i]) { if ($0 ~ "^[ ]*" funcs[i]) {
return 1 return 1
} }
} }
@ -246,7 +246,7 @@ remove_function+="print_snake "
remove_function+="gen_retried_interesting_dests " remove_function+="gen_retried_interesting_dests "
remove_function+="root_ssh_keys root_ssh_hostnames_dests root_ssh_hosts_dests" remove_function+="root_ssh_keys root_ssh_hostnames_dests root_ssh_hosts_dests"
local_script="$(remove_functions "$THIS_SCRIPT" "$remove_function")" local_script="$(remove_functions "$THIS_SCRIPT" "$remove_function")"
local_script="$(printf "%s" "$local_script" | sed -e 's/^ *//' -e 's/^#.*$//' -e 's/ local_script="$(printf "%s" "$local_script" | sed -e 's/^[ ]*//' -e 's/^#.*$//' -e 's/[ ]#.*//' -e '/^[ ]*$/d')"
while IFS= read -r line; do while IFS= read -r line; do
if [[ "$line" == *"EXTERNAL_MSG: KEY"* ]]; then if [[ "$line" == *"EXTERNAL_MSG: KEY"* ]]; then
root_ssh_keys["${line##* }"]=1 root_ssh_keys["${line##* }"]=1

View File

@ -329,7 +329,7 @@ remove_functions() {
# [space][space][...] func_name # [space][space][...] func_name
function is_func_call() { function is_func_call() {
for (i in funcs) { for (i in funcs) {
if ($0 ~ "^ *" funcs[i]) { if ($0 ~ "^[ ]*" funcs[i]) {
return 1 return 1
} }
} }
@ -463,7 +463,7 @@ shape_script() {
local_script="$(remove_functions "$THIS_SCRIPT" "$remove_function")" local_script="$(remove_functions "$THIS_SCRIPT" "$remove_function")"
# Remove all comments and unnecessary white-spaces. # Remove all comments and unnecessary white-spaces.
local_script="$(printf "%s" "$local_script" | sed -e 's/^ *//' -e 's/^#.*$//' -e 's/ #.*//' -e '/^ *$/d')" local_script="$(printf "%s" "$local_script" | sed -e 's/^[ ]*//' -e 's/^#.*$//' -e 's/[ ]#.*//' -e '/^[ ]*$/d')"
# XXX: If we want to see what script we're running, then this is the place to print "$local_script". Or above the previous line. # XXX: If we want to see what script we're running, then this is the place to print "$local_script". Or above the previous line.
# printf "%s" "$local_script" # printf "%s" "$local_script"
@ -1125,7 +1125,7 @@ find_from_bash_history() {
# scp file user@host:~/ ; extract user@host # scp file user@host:~/ ; extract user@host
# scp user@host:~/file ./ ; extract user@host # scp user@host:~/file ./ ; extract user@host
# rsync -a * user@host:~/ ; extract user@host # rsync -a * user@host:~/ ; extract user@host
if ssh_dest="$(echo "$bash_history_line" | grep -m 1 -oE "$allowed_users_chars"'@[^ :]+')"; then #TODO: doesn't work when matches multiple (-3). if ssh_dest="$(echo "$bash_history_line" | grep -m 1 -oE "$allowed_users_chars"'@[^ :]+')"; then # TODO: doesn't work when matches multiple (-3).
local ssh_host local ssh_host
local ssh_user local ssh_user
@ -2097,7 +2097,7 @@ recursive_scan() {
# Gitlab instances may be accessed, and it's quite easy to detect it. Since git uses ssh, we can record this. # Gitlab instances may be accessed, and it's quite easy to detect it. Since git uses ssh, we can record this.
# #
# Disallowed command # Disallowed command
if [[ "$line" == "Disallowed command" ]]; then #Gitlab if [[ "$line" == "Disallowed command" ]]; then # Gitlab
double_rs_chained_print "$t_hosts_chain" "$t_hostnames_chain" "$ssh_dest" double_rs_chained_print "$t_hosts_chain" "$t_hostnames_chain" "$ssh_dest"
rs_chained_print "$t_hosts_chain" "$ssh_dest [GitLab]" rs_chained_print "$t_hosts_chain" "$ssh_dest [GitLab]"
break break
@ -2106,7 +2106,7 @@ recursive_scan() {
# Github, too. # Github, too.
# #
# Invalid command: cmd # Invalid command: cmd
if [[ "$line" == "Invalid command: "* || "$line" == "exec request failed on channel "* ]]; then #Github if [[ "$line" == "Invalid command: "* || "$line" == "exec request failed on channel "* ]]; then # Github
double_rs_chained_print "$t_hosts_chain" "$t_hostnames_chain" "$ssh_dest" double_rs_chained_print "$t_hosts_chain" "$t_hostnames_chain" "$ssh_dest"
rs_chained_print "$t_hosts_chain" "$ssh_dest [GitHub]" rs_chained_print "$t_hosts_chain" "$ssh_dest [GitHub]"
break break