Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syntax Errors #3

Closed
tophertimzen opened this issue Dec 22, 2017 · 5 comments
Closed

Syntax Errors #3

tophertimzen opened this issue Dec 22, 2017 · 5 comments

Comments

@tophertimzen
Copy link

Don't have time to debug, but this occurs on Kernel 2.6.18-53 with CentOS 5

sh-3.1$ bash ./linux-exploit-suggester.sh

Kernel version: 2.6.18
Architecture: i386
Distribution: redhat
Package list: from current OS

Possible Exploits:

./linux-exploit-suggester.sh: line 1379: syntax error in conditional expression: unexpected token `|'
./linux-exploit-suggester.sh: line 1379: syntax error near `|t'
./linux-exploit-suggester.sh: line 1379: `        elif [[ "$src_url" =~ ^.*tgz|tar.gz|zip$ && -n "$EXPLOIT_DB" ]]; then'
sh-3.1$
@bcoles
Copy link
Contributor

bcoles commented Jan 28, 2018

For what it's worth, CentOS 5.5 (2.6.18-194) and CentOS 5.4 (2.6.18-164) don't have this issue.

@bcoles
Copy link
Contributor

bcoles commented Jan 29, 2018

I was able to reproduce this issue (and an additional error) on CentOS 5.0 (i686).

$ uname -a
Linux centos-live 2.6.18-8.1.1.tl5 #2 SMP Fri Apr 13 22:03:48 EDT 2007 i686 i686 i386 GNU/Linux
$ bash --version
GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ bash ./linux-exploit-suggester.sh

Kernel version: 2.6.18
Architecture: i386
Distribution:
Package list:

Possible Exploits:

./linux-exploit-suggester.sh: line 1324: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
./linux-exploit-suggester.sh: line 1379: syntax error in conditional expression: unexpected token `|'
./linux-exploit-suggester.sh: line 1379: syntax error near `|t'
./linux-exploit-suggester.sh: line 1379: `        elif [[ "$src_url" =~ ^.*tgz|tar.gz|zip$ && -n "$EXPLOIT_DB" ]]; then'

@mzet-
Copy link
Collaborator

mzet- commented Jan 29, 2018

Thanks guys.

Yeah, these are probably due to older Bash versions are lacking some particular feature (associative arrays, and probably =~ operator). Not sure how to handle it elegantly - I'm reluctant to support ancient bash versions.

In cases like this the simplest workaround would be to take uname -a and rpm -qa/dpkg -l outputs from target machine and run linux-exploit-suggester.sh on other machine with newer bash:

$ ./linux-exploit-suggester.sh --uname "Linux centos-live 2.6.18-8.1.1.tl5 #2 SMP Fri Apr 13 22:03:48 EDT 2007 i686 i686 i386 GNU/Linux" --pkglist-file dpkgOutput.txt

@tophertimzen
Copy link
Author

That's not a terrible workaround and is already reflective in the README.md. I agree you should not need to support ancient bash versions especially since you are likely running this script on an owned machine you have a shell on.

I'll go ahead and close this issue as I agree with your usage of uname -a or rpm -qa|dpkg -l

Cheers

@mzet-
Copy link
Collaborator

mzet- commented Feb 6, 2018

To avoid these kind of errors I've added bash version checking on script's startup. 4.0 is needed for associative arrays, =~ operator was added in 3.* so we should be good now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants